我有一个约束来逐字符地读取输入字符串。所以我在每个字符串后检查\ n。但该计划并没有终止。我只是把问题放在一个很短的代码中。
#include <iostream>
using namespace std;
int main(){
char c;
while(cin>>c){
char x;
cin>>x;
while(x!='\n'){
print the characters;
cin>>x;
}
} return 0;}
在上面的代码中,c将包含字符串的第一个字符,而x将逐个包含其余字符。
Input Case-
banananobano
abcdefhgijk
Radaradarada
答案 0 :(得分:3)
我有一个约束来逐字符地读取输入字符串
逐个字符阅读的一种方式是通过std::basic_istream::get
。
如果你定义
char c;
然后
std::cin.get(c);
会将下一个字符读入c
。
在循环中,您可以将其用作
while(std::cin.get(c))
<body>
答案 1 :(得分:2)
cin是以空格分隔的,因此任何空格(包括\ n)都将被丢弃。因此,x
永远不会
使用getline从输入流中读取行,然后使用istringstream从行中获取格式化输入。
std::string line;
std::getline(cin, line);
std::istringstream iss(line);
while ( iss >> c) {
print the characters;
}