C debug 记录

来源:互联网 发布:数据脱敏产品 编辑:程序博客网 时间:2024/06/05 06:38

1、scanf函数后面用到gets时,记住:一定要先用“getchar()”去掉\r回车键。

eg:

//practice.c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 100char * nstr(int n,char * str);int main(){    int n;    char * ans;    char str1[MAX];    printf("Enter a numbers:");    scanf("%d",&n);    getchar(); //滤去回车,至关重要!!!!    //上面那行删去的话,无论怎么debug会发现用户根本没机会对gets键入        信息,因为前面scanf输入数据后必须按一次回车,然后gets就可能先读入该回车键,然后马上停止获取键盘信息    ans=nstr(n,str1);    printf("%s",ans);    free(str1);}char * nstr(int n,char * str){    printf("Input a string:\n");    gets(str);    str[n]='\0';    return str;}

2、多次循环scanf读取时注意,遇到回车键,要先过滤!!!

    do    {        printf("Wrong input!Input again:");        scanf("%c",&buffer);        //关键!!!        if(buffer=='\n')                    scanf("%c",&start);        else            start=buffer;    }    while(start!='A');
0 0