C ++按字符读取字符串

时间:2016-09-23 05:29:13

标签: c++ iostream

我有一个约束来逐字符地读取输入字符串。所以我在每个字符串后检查\ 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

2 个答案:

答案 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;
  }