C语言几个小函数

xiaoxiao2021-02-28  86

*编写一个函数给一个变量赋值,如果赋值失败(值会依然留在缓冲区),丢弃该输入行的

所有剩余内容,并要求重新给这个变量赋值。

代码如下:

int right_num() { int number; while((scanf("%d", &number)) != 1) { while (getchar() != '\n') continue; printf("Please enter number again"); printf(" not alphy.\n"); } return number; }

也可一个把输入的错误的数打印出来告诉用户

代码如下:

int right_num() { int number; while((scanf("%d", &number)) != 1) { while ((ch = getchar()) != '\n') putchar(ch); printf(" is not right.\n"); printf("Please enter right number"); printf(" not alphy.\n"); } return number; }

*读取一行中的第一个字符并丢弃剩余的部分(包括回车也丢掉,主要就是想丢回车)。

代码如下:

char get_first() { char ch; ch = getchar();//接收第一个字符 while ((getchar()) != '\n') continue;//跳过该行剩下的内容 return ch; }

读取一行字符串,可读取第一个非空格字符前的空格,不包括末尾的回车

n是包括末尾的空字符在内的最大字符数。

char * s_gets(char * st, int n) { int i = 0; char * fir_address; fir_address = fgets(st, n, stdin); while (st[i] != '\n' && st[i] != '\0') i++;//如果输入的字符数小于n-1,最后一位字符是‘\0’(空字符是自动补充的),倒数第二位是‘\n’,遍历先遇到‘\n’;如果输入的字符数大于等于n-1,最后一位字符数是‘\0’(空字符是自动补充的),倒数第二位是输入的正常字符 if (st[i] == '\n') st[i] = '\0'//把回车消除掉 else// 此时st[i] == '\0',下面的语句是把多出来的字符消除掉 while (getchar() != '\n') continue; return fir_address; }
转载请注明原文地址: https://www.6miu.com/read-71942.html

最新回复(0)