本文介绍了从文件中部分填充数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要用文件中的数据部分填充2个数组,并保持它们并行。但我现在的代码给我看起来像giberish的错误。如果有人甚至可以帮助我解码错误,我会非常感谢。
I need to partially fill 2 arrays with data from a file and keep them parallel. But my current code gives me errors that look like giberish. If someone could even just help me decode the errors i would be very grateful.
代码:
/***************************************************/
/* Author: Sam LaManna */
/* Course: CSC 135 Lisa Frye */
/* Assignment: Program 6 Elves */
/* Due Date: 11/22/11 */
/* Filename: program6.cpp */
/* Purpose: Write a program that will process */
/* the work done by santas elfs */
/***************************************************/
#include <iostream> //Basic input/output
#include <iomanip> //Manipulators
#include <string> //String stuff
#include <fstream> //File input/output
using namespace std;
void instruct (); //Function Declaration for printing instructions
void input (ifstream &infile, string names [50], int numoftoys[50]); //Function declaration for getting data from file
int main()
{
string names [50] = { }; //Array for storing names
int numoftoys [50] = { }; //Array for storing the number of toys made
ifstream infile("eleves.dat"); //Opens input file "elves.dat"
instruct(); //Function call to print instructions
while (!infile.eof())
{
input (names [50], numoftoys [50]);
}
cout << names << "\n" << "\n";
cout << numoftoys << "\n" << "\n";
return 0;
}
/***************************************************/
/* Name: instruct */
/* Description: Prints instructions to user */
/* Parameters: N/A */
/* Return Value: N/A */
/***************************************************/
void instruct ()
{
cout << "\n" << "This program will calculate the toys made by santas elfs and assign" << "\n";
cout << "a rating to each elf. It will also sort them and print average, min and max." << "\n";
cout << "\n" << "Make sure you have a file named elves.dat in the same directory as";
cout << "this porgram or you will recieve errors.";
cout << "\n" << "\n";
return;
}
/***************************************************/
/* Name: input */
/* Description: Reads from file */
/* Parameters: N/A */
/* Return Value: N/A */
/***************************************************/
void input (ifstream &infile, string names [50], int numoftoys[50])
{
infile >> names >> numoftoy;
infile.ignore ("\n");
return;
}
错误:
直接链接:
推荐答案
istream::operator>> has overloads for neither arrays of strings nor arrays of integers.
您必须一次读取一个字符串和每个整数。最初由发布
You'll have to read each string and each integer in one at a time. Originally posted by @Seth Carnegie
input (infile, names, numoftoys); //your call was completely wrong
infile.ignore ('\n'); //notice the char instead of string
infile >> names >> numoftoys; //this won't work like this but at least we fixed the declaration error
使用std :: vector等,我们可以提供更多的C ++答案。还请避免使用 - using namespace std;
If you are allowed to use std::vector, etc. We could provide a more C++ answer. Also please avoid using - using namespace std;
这篇关于从文件中部分填充数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!