我有这个例子,但我无法弄清楚“什么是什么”,请帮助
#include iostream
using namespace std;
void main() {
char a[10],
car,
i = 0;
while (i < 10)
if(car = cin.get() != '\n')
a[i++] = car;
cout << a << endl;
cin.get();
}
答案 0 :(得分:0)
cin.get()返回存储在car中的字符,如果该字符是!= newline,则while循环继续(当然,只要i <10)。 所以基本上,你的代码等待在控制台中引入字符并将它们存储在你的数组中,然后显示整个数组。
答案 1 :(得分:0)
首先,我必须是int,所以a[i++] = car
可以工作。
其次,a[10]
未被声明为全局,因此它使用内存中的一些随机值进行初始化;这就是你的字符串后面有一些奇怪的符号的原因。您可以通过这样做来避免这种情况:a[i++] = '\0'
读取字符串后。
当谈到cin.get()
时,它会读取缓冲区中的每个字符,直到它为空,然后等待下一个输入。
这是你的代码:
char a[10], car;
int i=0;
while (i < 10 && (car = cin.get()) != '\n')
a[i++] = car;
a[i++] = '\0';
cout << a << endl;
cin.get();