簡體   English   中英

C ++文件寫入-不能按預期寫入變量

[英]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 >> agegetline cin >> age

getline(cin >> ws, inp);

這指示輸入流放棄先前累積的“空白”,即換行符,制表符等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM