我的问题有点奇怪,但是如何通过使用scanf()
而不使用getchar()
和operator<<
从char键盘char读取一些字符串,例如我想要提前感谢a
提前阅读的每个字母*
答案 0 :(得分:2)
char c;
std::string output;
while(std::cin >> c)
{
if(c == 'a')
c = '*';
output += c;
}
答案 1 :(得分:1)
根据您的目的,您可能会发现这样做足够了:
#include <iostream>
#include <iomanip>
char c;
std::cin >> std::noskipws;
while (std::cin >> c)
std::cout << c == 'a' ? '*' : c;
有关noskipws的更多详细信息,请参阅http://www.cplusplus.com/reference/iostream/manipulators/noskipws/,这对于其他运营商而言至关重要&gt;&gt;将跳过空格,制表符和换行符,直到找到要放入“c”的其他字符,从而导致从输出中删除所有上述空白字符。
答案 2 :(得分:0)
尝试写出一种char。
char cReadFromStream;
stream >> cReadFromStream;
答案 3 :(得分:0)
你做不到。 operator <<
uses cooked inputs.
但是,如果您真的想要使用C ++ iostream而不是C stdio函数来寻找解决方案,那么使用cin.get()
,这是与getchar
等效的C ++ iostream。