C++ 如何读取文件并放入数组 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 字符串arr[3][2]; int i=0,j=0; 输出流(“test1.dat”,ios::app); 字符串名; while(true) { cin>>名称; 如果(名称=“结束”) 打破 out>name; j++; arr[i][j]=姓名; i++; j=0; } in.close(); 对于(i=0;i
尝试在while循环中为i添加一个条件。 这将修复数组边界的运行时错误,但仍然存在逻辑错误(除非希望在数组中重复出现相同的单词?)C++ 如何读取文件并放入数组 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 字符串arr[3][2]; int i=0,j=0; 输出流(“test1.dat”,ios::app); 字符串名; while(true) { cin>>名称; 如果(名称=“结束”) 打破 out>name; j++; arr[i][j]=姓名; i++; j=0; } in.close(); 对于(i=0;i,c++,file,C++,File,尝试在while循环中为i添加一个条件。 这将修复数组边界的运行时错误,但仍然存在逻辑错误(除非希望在数组中重复出现相同的单词?) while(!in.eof()&&i>的名义; j++; arr[i][j]=姓名; i++; j=0; } 这不是C,顺便说一句。这与C-man无关。至于您的问题:您是否确保成功创建流?您似乎没有检查状态位。很可能i在您的读取while循环中变得大于2。当您使用调试器时,哪个语句导致了问题?SeaRCH用于现有的“几乎”重复:“StAdvOpjultC++读取文件
while(!in.eof()&&i<3)
{
arr[i][j]=姓名;
以>>的名义;
j++;
arr[i][j]=姓名;
i++;
j=0;
}
这不是C
,顺便说一句。这与C-man无关。至于您的问题:您是否确保成功创建流?您似乎没有检查状态位。很可能i
在您的读取while循环中变得大于2。当您使用调试器时,哪个语句导致了问题?SeaRCH用于现有的“几乎”重复:“StAdvOpjultC++读取文件数组”。
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
string arr[3][2];
int i =0,j=0;
ofstream out ("test1.dat" , ios::app);
string name;
while(true)
{
cin>>name;
if(name=="end")
break;
out << name <<' ' ;
}
out.close();
ifstream in ("test1.dat", ios::in);
in >> name;
while(!in.eof())
{
arr[i][j]=name;
in>>name;
j++;
arr[i][j]=name;
i++;
j=0;
}
in.close();
for(i=0;i<3;i++){
cout<<endl;
for(j=0;j<2;j++){
cout<<arr[i][j]<<" ";}
}
return 0;
}
while(!in.eof() && i < 3)
{
arr[i][j]=name;
in>>name;
j++;
arr[i][j]=name;
i++;
j=0;
}