回 帖 发 新 帖 刷新版面

主题:[讨论]这个程序为什么不能循环呢?

代码如下:
#include <stdio.h>
#include <string.h>
void main()
{
    const char *key = NULL ;
    const char *val = NULL ;
    char ch = 'y';

    do
    {
        printf(" Input the key:");
        scanf("%s",&key);
        printf("Input the val:");
        scanf("%s",&val);     

        printf(" key = %s. val = %s\n", &key, &val );

        printf("---------\n");

        printf(" Press \"y\" ,continue. Or Press \"n\" , break :\n" ); 
        scanf("%c",&ch);        
    }while( ch == 'y' )
};

回复列表 (共5个回复)

沙发


俺也是新手,但是估计你的const使用不正确和你使用指针的方式要考略一个,在网上在查找一个这两点

板凳

char ch = 'y';
/**/
scanf("%c",&ch); 
===================这里

3 楼

“ scanf("%s",&val);    ”你要记住你这里输入完了之后按了一个回车键,这个回车键仍然保存在输入流里面,到下一次读取字符的时候,这里也就是 scanf("%c",&ch);     它读取的是先前你按下的“回车键”,也就是说你这个字符是‘\n’,明显的不是‘y’,当然就自动结束了啊。

4 楼

野指针啊...指针不是这么用的

5 楼

scanf后都加个getchar();吧。。。你每按一个回车都会产生一个换行符~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册