X 我知道了TIPS:左右滑动导航栏可以查看更多栏目
晕的了!!好像真正讲解原理的人是 whsjxiong ,不是我哦。
楼主要看清楚了,呵呵……
>> 本文固定链接: http://www.vcgood.com/archives/2702
>> 转载请注明: whos 2008年09月06日 于 C语言帝国 发表
我的意思是,在exe 文件中我无论输入什么都无法退出 while循环。。。。。。
按理说,当输入为空的时候是会退出的啊,至少我是想让他那么执行的~~
程序如下:
#include <stdio.h>#include <stdlib.h>#define MAX_INPUT 1000
int main( void ){ char input[MAX_INPUT]; while ( gets( input ) ) { if(input[0]==’ ‘) break; printf ( “putout: %s\n”, input ); } return 0;}
关键是这个 Null(0×00) 你无法输入。你只能输入“0”(0×30)
谢谢 VBProFan 的回答
直接敲回车,输入的便是NULL
我把它改成这样:
int main( void ){ char input[MAX_INPUT]; while ( gets( input ) ) { if(input[0]==NULL) break; printf ( “putout: %s\n”, input ); } return 0;}
敲回车 便可以直接退出~~
谢谢whos的回答,请问while ( gets( input ) != NULL )本身存在问题嘛??
为什么一定要 另外用 if 判断 break退出??
理解错误 !!
while ( gets( input ) != NULL )本身存在问题,gets函数是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址 !!,
null是有地址的(0×00),而你如此输入 , gets( input ) != NULL 会永远成立,故而构成死循环。。。
[QUOTE=狂野的云]
[/QUOTE]
我看成了“当输入为空格的时候”,所以理解成了是你输入空格后再回车,然后退出,所以加了个判断输入空格的情况。
输入为空的时候直接判断输入为回车就行了。、
呵呵……
哦 是我对 gets 函数的理解有问题 呵呵,原来gets 得到的 是指针啊~~ 而 NULL 是 空指针~~
字符串的初始地址值,当让不会等于 0×00 了 ,害我郁闷好半天。。。。。
再次谢谢 whos,你基础真 NB 啊
啊。。。。对不住 whsjxiong 兄弟了,上课的时候我偷偷上了下论坛
结果感激之情 发泄错了对象。。。。。。(其实是就看错了。。。)
恩,谢谢 whsjxiong 的帮助,我可不是那种麻烦了人家都不道谢一声的人啊~~
你的 基础 那个叫 牛
你必须先 登录才能发表评论。
我的意思是,在exe 文件中我无论输入什么都无法退出 while循环。。。。。。
按理说,当输入为空的时候是会退出的啊,至少我是想让他那么执行的~~
程序如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX_INPUT 1000
int main( void )
{
char input[MAX_INPUT];
while ( gets( input ) )
{
if(input[0]==’ ‘)
break;
printf ( “putout: %s\n”, input );
}
return 0;
}
关键是这个 Null(0×00) 你无法输入。你只能输入“0”(0×30)
谢谢 VBProFan 的回答
直接敲回车,输入的便是NULL
我把它改成这样:
#include <stdio.h>
#include <stdlib.h>
#define MAX_INPUT 1000
int main( void )
{
char input[MAX_INPUT];
while ( gets( input ) )
{
if(input[0]==NULL)
break;
printf ( “putout: %s\n”, input );
}
return 0;
}
敲回车 便可以直接退出~~
谢谢whos的回答,请问while ( gets( input ) != NULL )本身存在问题嘛??
为什么一定要 另外用 if 判断 break退出??
理解错误 !!
while ( gets( input ) != NULL )本身存在问题,gets函数是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址 !!,
null是有地址的(0×00),而你如此输入 , gets( input ) != NULL 会永远成立,故而构成死循环。。。
[QUOTE=狂野的云]
我的意思是,在exe 文件中我无论输入什么都无法退出 while循环。。。。。。
按理说,当输入为空的时候是会退出的啊,至少我是想让他那么执行的~~
[/QUOTE]
我看成了“当输入为空格的时候”,所以理解成了是你输入空格后再回车,然后退出,所以加了个判断输入空格的情况。
输入为空的时候直接判断输入为回车就行了。、
呵呵……
哦 是我对 gets 函数的理解有问题 呵呵,原来gets 得到的 是指针啊~~ 而 NULL 是 空指针~~
字符串的初始地址值,当让不会等于 0×00 了 ,害我郁闷好半天。。。。。
再次谢谢 whos,你基础真 NB 啊
晕的了!!好像真正讲解原理的人是 whsjxiong ,不是我哦。
楼主要看清楚了,呵呵……
啊。。。。对不住 whsjxiong 兄弟了,上课的时候我偷偷上了下论坛
结果感激之情 发泄错了对象。。。。。。(其实是就看错了。。。)
恩,谢谢 whsjxiong 的帮助,我可不是那种麻烦了人家都不道谢一声的人啊~~
你的 基础 那个叫 牛