[英]Checks input of 'fgets' in C
我想檢查用戶是否寫了少於 30 個字符。 這是我下面的代碼,但它無法按照我想要的方式檢查用戶的輸入。 例如,如果我輸入 40 個字符作為輸入,它不會打印Not valid input
。 誰能解釋我如何檢查輸入是否正確?
int main(int argc, char **argv) {
char string[31];
printf("Enter a string: ");
if (fgets(string, 30, stdin)) {
printf("Enter a character too: ");
char c;
scanf("%c", &c);
char *ptr = string;
if (ptr = contains(ptr, c)) {
printf("Found at position %ld\n", ptr - string + 1);
} else {
printf("Character did not found.\n");
}
} else {
printf("Not valid input\n");
}
return 0;
}
fgets()
讀取整行並將換行符保留在緩沖區中。 如果緩沖區小於需要,緩沖區將不包含換行符,該換行符連同該行的 rest 將在隨后的fgets()
調用中被讀取。
fgets(buffer, sizeof buffer, stdin);
size_t len = strlen(buffer);
if (!len) /* mal-formed input */;
if (buffer[len - 1] != '\n') /* error if not eof */;
你可以試試:
char string[32];
printf("Enter a string: ");
if(fgets(string,32,stdin)>30) {
printf("Error: Too many characters");
return 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.