如果您想要閱讀,直到換行符或NUL,讀一個字符內部循環。
#include<iostream>
int main()
{
char input;
std::cout << "Enter a line: " << std::flush;
while(std::cin >> input && input != '\n' && input != 0) {
std::cout << "This is a test\n";
}
}
注:
- 主要需要返回類型
- ,永不說: 「使用命名空間std;」
- 不要忘記沖洗,如果你想立即出現
cout
。
- 注意
while
條件中的複合測試:
- 首先,讀取成功了嗎?
- 接下來,是不是
'\n'
(您的一個條件)。
- 接下來,它不是NUL(你的另一個條件)。
- 該循環的主體將被執行一次輸入字符 - 是你想要什麼?
但是,請考慮您是否正確指定了您的要求。這是一個不尋常的要求 - 爲什麼會在文本文件中存在NUL,並且爲什麼要單獨處理每個字符?
在地道的C++中,你可以使用std::getline
一次讀一列的輸入文件:
std::string myString;
while(std::getline(std::cin, myString)) {
// process myString
}
如果你只是想在一行寫着:最後
std::string myString;
if(std::getline(std::cin, myString)) {
// process myString
}
,如果你想讀一行,而忽略它的內容:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
這是不是很清楚你想要做什麼,所以一些更多的細節會有所幫助。 – Dragos
-1:提供一個甚至不編譯的示例程序。 –