初级C++问题.
1.某语句:
string word;
while(cin>>word){
...
}
请问这个循环为什么在VC6.0下不能停,不论是输入或不输入都不停,我只好在While里又加了其它条件.
2.关于main(int argv,char *argc[])
请问为什么有好多程序将第二个参数写成**argc[]呢?*argc[]就是指针数组,何必再定义一下指针呢?
问题点数:20、回复次数:19Top
1 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-06-03 21:30:13 得分 1
#include <iostream>
using namespace std;
int main()
{
std::cout << "Enter a number, or -1 to quit: ";
int i = 0;
while (std::cin >> i) { // 良好的形式
if (i == -1) break;
std::cout << "You entered " << i << '\n';
}
return 0;
}
//这样的结果就是当你敲击end-of-file(任意的非数字字符),或键入一个非整数,或键入 -1 时, while 循环会退出。
Top
2 楼zzstephen(渣渣)回复于 2006-06-04 00:06:27 得分 5
1 cin >> word 总是返回一个istream对象,while(cin >> word) 括号里面的非空当然是死循环。
2 确定是 char** argc[] 而不是 char** argc 吗?
Top
3 楼rollor_phoe(柔枫)回复于 2006-06-04 00:22:47 得分 0
你两次回车的话就退出循环了。Top
4 楼luvybird()回复于 2006-06-04 00:54:40 得分 0
while(cin >> word) //在读到文件尾的时候会结束循环Top
5 楼MagicCarmack(MagiC++)回复于 2006-06-04 13:04:58 得分 4
第一个问题按 Ctrl+Break搞定
第二个问题确定你没有看错么?Top
6 楼yhmhappy2006(Nathan)回复于 2006-06-04 13:29:36 得分 4
第一个问题按 Ctrl+Z(windows), Ctrl+D(Linux)
第二个问题确定你没有看错么?
Top
7 楼wdy0725()回复于 2006-06-04 22:55:27 得分 0
sorry.第二个问题果然是我看错了,浪费各位的时间了.
应该是:main(int argv,char **argc)
回rollor_phoe(柔枫) :
几次回车也不行.
回MagicCarmack(MagiC++) & yhmhappy2006(Nathan) :
如果强行退出就失去意义了.
Top
8 楼yhmhappy2006(Nathan)回复于 2006-06-05 01:42:24 得分 0
并非强行退出啊,这本来就是一种处理方法,而且只能这样
另外,如果下面还要用到cin的话,必须先cin.clear();一下Top
9 楼MagicCarmack(MagiC++)回复于 2006-06-05 11:03:43 得分 0
你不要认为按Ctrl+....就是强退
这是cin的设计
你翻翻C++ Primer前面那章,就是这么讲的Top
10 楼wdy0725()回复于 2006-06-05 22:49:11 得分 0
windows下退出是ctrl+c不是ctrl+z,ctrl+break也可以,那请问有什么区别吗?
还有第一个问题那位高手帮忙解决一下.Top
11 楼jxfengzi(子丰)回复于 2006-06-06 07:16:57 得分 3
main(int argv,char *argc[])
*argc[] 可以写成 **argc
在作为函数参数时,指针= 数组
例如:
f(char *p);
f(char p[]);
是一样的,
所以*argc[] 可以写成 **argc,详情请参阅:《C专家编程》Top
12 楼chenzhendong(chenzhendong)回复于 2006-06-06 08:29:27 得分 0
这样写
while(!kbiht()) {
.......
}Top
13 楼wdy0725()回复于 2006-06-06 23:08:11 得分 0
楼上能不能解释一下kbiht()是什么函数?Top
14 楼yhmhappy2006(Nathan)回复于 2006-06-08 11:13:19 得分 0
windows下退出是ctrl+c不是ctrl+z
------------------
????????????
奇了怪了,退出是ctrl+c都来了
老大,那是复制好不好,你当我们是什么啊?Top
15 楼wanderfox()回复于 2006-06-08 13:45:46 得分 0
奇了怪了,退出是ctrl+c都来了
老大,那是复制好不好,你当我们是什么啊?
寒~~~Top
16 楼fuheli()回复于 2006-06-08 14:58:38 得分 2
while(cin >> word) //在读到文件尾的时候会结束循环
那么C++是如何判断是文件尾.
因为按照你说的:这样的结果就是当你敲击end-of-file(任意的非数字字符),或键入一个非整数,或键入 -1 时, while 循环会退出。在visual c++下不行.
Top
17 楼freshui(五月的风 - 唉 真饼啊! 多学习,少灌水打游戏)回复于 2006-06-08 15:13:01 得分 1
奇了怪了,退出是ctrl+c都来了
老大,那是复制好不好,你当我们是什么啊?
ctrl+c是退出 复制是ctrl+insTop
18 楼lddLinan(不再五行中)回复于 2006-06-08 20:37:06 得分 0
赫赫,打CS的时候为什么不这样想:老按着W键,为什么屏幕上为什么没有一个“w”
不同的程序对相同的按键有不同的响应Top
19 楼yhmhappy2006(Nathan)回复于 2006-06-09 13:14:41 得分 0
参考:
C++ Primer 中文版 第四版 P16Top




