[英]C++ file writing - not writing variables as expected
我瀏覽了一些不同的內容(似乎無法在pluralrsight上找到一個好的文件I / O教程),並且在文件編寫方面閱讀了tutorialspoint和cplusplus網站,但我的似乎無法正常工作。
我以類似的方式復制了有關c ++文件I / O的教程。
ofstream out;
out.open("D:\\cpp_files\\test_iofile.txt", ios::out);
cout << "Writing to file" << endl;
cout << "Enter your name: ";
string name;
getline(cin, name);
out << name;
cout << "Enter age: ";
int age;
cin >> age;
out << age << endl << "This is an insert" << endl;
out.close();
您可能並不在乎中間的更多內容,然后是本節:
out.open("D:\\cpp_files\\test_iofile.txt", ios::ate);
out << endl;
string inp;
cout << "Write some random crap: ";
getline(cin, inp);
out << inp << endl;
out << "-----------";
out.close();
奇怪的是,它在正確的位置創建了.txt文件,但其輸出等於2個空行和破折號。 因此,我最終得到了(添加“>”以指示空白行):
>
>
----------
我知道這一定是我想念的東西,但是我似乎無法抓住它。 編譯器也沒有生成錯誤。
cin >> age;
之后,您必須沖洗緩沖液cin >> age;
,
cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
並將ios::ate
更改為ios::app
必須#include <limits>
ios:ate
截斷文件,而ios::app
在末尾追加。
cin.ignore
的替代cin.ignore
是在cin >> age
將getline
cin >> age
為
getline(cin >> ws, inp);
這指示輸入流放棄先前累積的“空白”,即換行符,制表符等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.