cin.get() 在接下来的代码中如何工作?(C++)
How does cin.get() works in the next code?(C++)
我得到了这个例子,但是我想不通"what is what",请帮忙
#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();
}
cin.get() returns car中存储的一个字符,如果那个字符是!=换行符,则while循环继续(当然,只要i < 10) .
所以基本上,您的代码等待在控制台中引入字符并将它们存储在您的数组中,然后显示整个数组。
首先,我必须是整数,所以a[i++] = car
可以工作。
其次,a[10]
没有全局声明,所以它是用内存中的一些随机值初始化的;这就是为什么你的字符串后面有一些奇怪的符号。您可以这样做来避免这种情况:a[i++] = '[=13=]'
after reading the string.
当谈论cin.get()
时,它读取缓冲区中的每个字符直到它为空,然后等待下一个输入。
这是您的代码:
char a[10], car;
int i=0;
while (i < 10 && (car = cin.get()) != '\n')
a[i++] = car;
a[i++] = '[=10=]';
cout << a << endl;
cin.get();
我得到了这个例子,但是我想不通"what is what",请帮忙
#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();
}
cin.get() returns car中存储的一个字符,如果那个字符是!=换行符,则while循环继续(当然,只要i < 10) . 所以基本上,您的代码等待在控制台中引入字符并将它们存储在您的数组中,然后显示整个数组。
首先,我必须是整数,所以a[i++] = car
可以工作。
其次,a[10]
没有全局声明,所以它是用内存中的一些随机值初始化的;这就是为什么你的字符串后面有一些奇怪的符号。您可以这样做来避免这种情况:a[i++] = '[=13=]'
after reading the string.
当谈论cin.get()
时,它读取缓冲区中的每个字符直到它为空,然后等待下一个输入。
这是您的代码:
char a[10], car;
int i=0;
while (i < 10 && (car = cin.get()) != '\n')
a[i++] = car;
a[i++] = '[=10=]';
cout << a << endl;
cin.get();