C++ 逐字符读取

C++ 逐字符读取,c++,C++,我的问题有点奇怪,但是不使用scanf()和getchar()只使用operator试着写出一种字符,怎么可能一个字符一个字符地从键盘读取一些字符串呢 char cReadFromStream; stream >> cReadFromStream; 试着写出一种字符 char cReadFromStream; stream >> cReadFromStream; 你不能 但是,如果你真的在用C++ C++流寻找一个解决方案,而不是C STDIO函数,那么使用 CI

我的问题有点奇怪,但是不使用
scanf()
getchar()
只使用
operator试着写出一种字符,怎么可能一个字符一个字符地从键盘读取一些字符串呢

char cReadFromStream;

stream >> cReadFromStream;

试着写出一种字符

char cReadFromStream;

stream >> cReadFromStream;
你不能

但是,如果你真的在用C++ C++流寻找一个解决方案,而不是C STDIO函数,那么使用<代码> CIN。p>
<>但是,如果你真的在用C++ C++流寻找一个解决方案,而不是C STDIO函数,那么使用<代码> CIN。
#include <iostream>
#include <iomanip>

char c;

std::cin >> std::noskipws;

while (std::cin >> c)
    std::cout << c == 'a' ? '*' : c;
#包括
#包括
字符c;
std::cin>>std::noskipws;
while(std::cin>>c)

std::cout>将跳过空格、制表符和换行符,直到找到其他字符放入“c”中,从而从输出中删除所有上述空白字符。

根据您的用途,您可能会发现这样做已经足够:

#include <iostream>
#include <iomanip>

char c;

std::cin >> std::noskipws;

while (std::cin >> c)
    std::cout << c == 'a' ? '*' : c;
#包括
#包括
字符c;
std::cin>>std::noskipws;
while(std::cin>>c)

std::cout>将跳过空格、制表符和换行符,直到找到其他字符放入“c”,从而从输出中删除所有上述空白字符。

可将
push_back()
方法替换为串联:
输出+=c。这可能更自然,因为它是一个追加。很好的调用。我在C语言中呆的时间太长了。
push_-back()
方法可以被级联取代:
output+=C。这可能更自然,因为它是一个追加。很好的调用。我被困在C区太久了。