C++中读入长度不定的字符串

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:07:14
do
{
cin>>a[i];
i++;
}
while(a[i]!='\r');
这样子有什么问题吗?
数组a的定义是
char a[100];
我假设字符数不会超过100
但是问题是程序不能结束输入,好像死循环了,一直再输入界面,'\r'不是回车吗?

有问题啊,如果输入的前100个没有'\r',数组就会越界啊,应该把循环条件改为while(a[i]!='\r'&&i<=99);
既然要回车符就结束,那可以直接cin>>a;就可以了啊,a是数组啊,cin接受一个字符串,遇“空格”、“TAB”、“回车”都结束

你是一次一个字符的读取,感觉没必要哈。
不过这样做是可以的。注意不要越界就可以了。

另外就是比如空格可能被忽略掉,所以你需要用cin的一个成员函数来设置不要忽略空格和换行。

char* a;
cin>>a;
这样就可以了

想获得长度用 int len = strlen(a);

cin>>a;??