我想把两个文件命名为输入,另一个命名为输出
在我输入的文件中:Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Vestibulum dignissim,tincidunt vitae nisi eu viverra。 Sed,consequat。
字符串数组应该是128个元素。
我要做的是让程序从输入文件中逐字读取到128个元素的字符串数组中。
这是我到目前为止提出的代码:
int main(){
string Lnm[128];
int l = 0;
//input file and output file.
fstream theInput("Input.txt", ios::in);
fstream theOutput("Output.txt", ios::out);
//checks if file is there
if (!theInput.good()){
cout << "A PROBLEM HAS OCCURED!\n" << "______________________________\n" << "ERROR: File does not exist! Please make a valid file.\n";
system("pause");
return 0;
}
for (Lnm; getline(theInput, Lnm[l], '\n');) {
cout << Lnm << endl;
}
//checking
if (theInput.eof()){
cout << "Successful!\n";
theOutput << Lnm[l] << "\n";
}
else if (theInput.fail()){
cout << "Invalid Input\n";
}
else if (theInput.bad()){
cout << "Error! go and fix the problem.\n";
}
theInput.close();
theOutput.close();
system("pause");
return 0;
}
我的问题是我得到的东西存放在哪里,或者至少我认为是这样。我如何制作它以显示文本并将其导入输出?
答案 0 :(得分:1)
这些行
for (Lnm; getline(theInput, Lnm[l], '\n');) {
cout << Lnm << endl;
}
不要增加l
。由于Lnm[0]
初始化为l
,您最终只能将这些字词读入0
。
此外,cout << Lnm << endl;
可能只会打印一个指针 - 指向Lnm
的第一个元素的指针。
将它们更改为:
for ( l = 0; getline(theInput, Lnm[l], '\n'); ++l ) {
cout << Lnm[l] << endl;
}
准备好将字符串打印到输出文件时,需要使用:
for ( int i = 0; i < l; ++i ) {
theOutput << Lnm[i] << "\n";
}
PS 我会使用numLines
代替l
。这将使代码更具可读性。