我正在尝试在C++中读取一个字符的缓冲区,直到'\n',并使用do-while循环使用这些字符初始化char数组.我知道我可以使用cin.getline(),但我想自己尝试一下.
int main()
{
char buffer [1024];
int index = 0;
char temp;
do
{
cin.get( temp );
buffer [ index ] = temp;
index ++;
}
while ( temp != '\n' );
cout << buffer << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它给了我不正确的结果 - 通过几行squre括号与其他怪异符号混合的正确文本休止.
首先,在整个文本之后,你必须追加'\0'为字符串的结尾
它看起来应该是buffer[ index ] = 0;因为你应该重写\n你追加的角色.
当然,还有其他一些你应该检查的东西,但它们不是你的主要问题
cin.eof()