C语言最多输入256个字符
Input of maximum 256 characters in C
I/O 问题:
我被要求从用户那里获取输入并解析它。
问题是我的程序应该能够处理 any 长度的输入并将任何超过 256 个字符的输入行视为无效并相应地打印一条消息。
目前我正在使用 fgets
接收输入行,并使用 strtok
稍后解析它,但这是一个很长的输入行的问题。
我该如何解决这个问题?
到目前为止我的代码:
char userInput[1024];
char *token = NULL;
while (!feof(stdin)) {
fflush(stdin);
if (fgets(userInput, 1024, stdin) != NULL) {
token = strtok(userInput, " \t\r\n");
if (token != NULL) {
if (strncmp(userInput, "fiver", 5) == 0) {
printf("5");
}
else if (strncmp(userInput, "four", 4) == 0) { printf("4");}
有一个数组或 257 或 258 个字符(取决于是否在这 256 个中计算换行符)并使用 fgets
读入它,传入大小 257 或 258。然后检查长度带有 strlen()
的字符串。如果 strlen(buf)
恰好是行的最大长度 包括换行符 ,则检查第 strlen(buf)-1
个字符 - 如果它是 \n
它是好的,否则你的队伍太长了。
或者只使用 fgetc
而不是 fgets
,计数到 '\n'
或 256,以先到者为准。
I/O 问题:
我被要求从用户那里获取输入并解析它。 问题是我的程序应该能够处理 any 长度的输入并将任何超过 256 个字符的输入行视为无效并相应地打印一条消息。
目前我正在使用 fgets
接收输入行,并使用 strtok
稍后解析它,但这是一个很长的输入行的问题。
我该如何解决这个问题?
到目前为止我的代码:
char userInput[1024];
char *token = NULL;
while (!feof(stdin)) {
fflush(stdin);
if (fgets(userInput, 1024, stdin) != NULL) {
token = strtok(userInput, " \t\r\n");
if (token != NULL) {
if (strncmp(userInput, "fiver", 5) == 0) {
printf("5");
}
else if (strncmp(userInput, "four", 4) == 0) { printf("4");}
有一个数组或 257 或 258 个字符(取决于是否在这 256 个中计算换行符)并使用 fgets
读入它,传入大小 257 或 258。然后检查长度带有 strlen()
的字符串。如果 strlen(buf)
恰好是行的最大长度 包括换行符 ,则检查第 strlen(buf)-1
个字符 - 如果它是 \n
它是好的,否则你的队伍太长了。
或者只使用 fgetc
而不是 fgets
,计数到 '\n'
或 256,以先到者为准。