本週我開始研究C++中的文本文件,並在我的練習中,我必須執行一個程序,用戶輸入文件中的行,但是... for用戶輸入的每個空間,程序向新用戶詢問。爲什麼std :: cin字符串輸入要求我爲每個空間
這裏是我的代碼:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(void){
ofstream myfile;
string answer;
do{
cout << "Insert a line in the file[END to finalize]: ";
cin >> answer;
myfile.open("example.txt");
myfile << answer;
myfile.close();
}while(answer != "END");
}
結果是:
在文件中插入一行[月底前敲定]:你好我的朋友
插入線在文件中[END to finalize]:在 文件中插入一行[END to finalize]:在文件中插入一行[END to finalize]:
但是,這是什麼問題?順便說一句,這樣做,如果用戶在第一次輸入END,那麼「結束」將被寫入文件 – lpostula
這是什麼問題?你有些描述你的bug,這是由於默認的分隔符是一個空格。考慮使用getline代替,然後你可以繼續下一個問題。 – AJG85