ifstreaming 文件无法正常工作。这是代码
ifstreaming a file not working properly. Here is the code
在我的程序中,我在 ofstream 的帮助下将用户提供的数据存储在 .txt 文件中。
我正在使用 setw() 来确保输入的数据之间有适当的间隙,并且我将用户的数据存储在一行中。这是相关代码:
string n,mn,fn;
int a;
cout<<"Enter your full name: ";
getline(cin, n);
cin.ignore();
cout<<"Father name: ";
getline(cin, fn);
cin.ignore();
cout<<"Mother name: ";
getline(cin, mn);
cin.ignore();
cout<<"Enter your age: ";
cin>>a;
ofstream file("my.txt",ios::app);
file<<left<<setw(50)<<n<<setw(50)<<a<<setw(50)<<fn<<setw(50)<<mn<<endl;
file.close();
我的 .txt 文件以适当的间距正确保存数据:
parth kumar 12 jack worn juli zeel
standly duke 19 shane roger zoya khan
现在我想在我的同一个程序中对这些数据进行 ifstream。我只在第一行将以下代码写入 ifstream。这是代码:
string fn,mn,n;
int a;
ifstream file("my.txt");
file>>left>>setw(50)>>n;
file>>setw(50)>>a;
file>>setw(50)>>fn;
file>>setw(50)>>mn
cout<<n<<" "<<a<<" "<<fn<<" "<<mn;
此代码没有给出预期的结果。我只是想 ifstream 第一行内容。
可能吗?或者我应该将每组数据存储在不同的文件中(比如名字在一个文件中,年龄在一个文件中,父亲的名字在一个文件中,母亲的名字在另一个文件中)。你能帮忙吗?
如果您读取文件,则不必指定值之间存在差距。 Fstream 为你做。任何有 spaces 的地方都不会读作一个,例如父亲的名字 Jack。它只会读杰克。 Fstream 阅读内置了 space 分隔阅读。所以你必须在不同的变量中读取父亲的名字和姓氏,对于母亲也是如此。我没有测试这段代码。这是基于我的常识,所以它可能不是真的。
string fn,fsn,mn,msn,n;
int a;
ifstream file("my.txt");
file >>n; // Name
file >> a; // Age
file >> fn; // Father's name
file >> fsn; // Father's surname
file >> mn; // Mother's name
file >> msn; // Mother's surname
cout << n << " " << a << " " << fn << ' ' << fsn <<" " << mn << ' ' << msn;
在我的程序中,我在 ofstream 的帮助下将用户提供的数据存储在 .txt 文件中。 我正在使用 setw() 来确保输入的数据之间有适当的间隙,并且我将用户的数据存储在一行中。这是相关代码:
string n,mn,fn;
int a;
cout<<"Enter your full name: ";
getline(cin, n);
cin.ignore();
cout<<"Father name: ";
getline(cin, fn);
cin.ignore();
cout<<"Mother name: ";
getline(cin, mn);
cin.ignore();
cout<<"Enter your age: ";
cin>>a;
ofstream file("my.txt",ios::app);
file<<left<<setw(50)<<n<<setw(50)<<a<<setw(50)<<fn<<setw(50)<<mn<<endl;
file.close();
我的 .txt 文件以适当的间距正确保存数据:
parth kumar 12 jack worn juli zeel
standly duke 19 shane roger zoya khan
现在我想在我的同一个程序中对这些数据进行 ifstream。我只在第一行将以下代码写入 ifstream。这是代码:
string fn,mn,n;
int a;
ifstream file("my.txt");
file>>left>>setw(50)>>n;
file>>setw(50)>>a;
file>>setw(50)>>fn;
file>>setw(50)>>mn
cout<<n<<" "<<a<<" "<<fn<<" "<<mn;
此代码没有给出预期的结果。我只是想 ifstream 第一行内容。 可能吗?或者我应该将每组数据存储在不同的文件中(比如名字在一个文件中,年龄在一个文件中,父亲的名字在一个文件中,母亲的名字在另一个文件中)。你能帮忙吗?
如果您读取文件,则不必指定值之间存在差距。 Fstream 为你做。任何有 spaces 的地方都不会读作一个,例如父亲的名字 Jack。它只会读杰克。 Fstream 阅读内置了 space 分隔阅读。所以你必须在不同的变量中读取父亲的名字和姓氏,对于母亲也是如此。我没有测试这段代码。这是基于我的常识,所以它可能不是真的。
string fn,fsn,mn,msn,n;
int a;
ifstream file("my.txt");
file >>n; // Name
file >> a; // Age
file >> fn; // Father's name
file >> fsn; // Father's surname
file >> mn; // Mother's name
file >> msn; // Mother's surname
cout << n << " " << a << " " << fn << ' ' << fsn <<" " << mn << ' ' << msn;