我一直在试图弄清楚为什么它不能打印出测试消息并进入while
循环。有任何想法吗?
void getInput(char * string)
{
char * tempString;
int maxLength = 1026; // Accounts for NULL and \n.
tempString = malloc(maxLength * sizeof(char));
fgets(tempString, maxLength, stdin);
size_t len = strlen(tempString);
while ((int)len > maxLength)
{
printf("Test");
if (tempString[len-1] == '\n')
{
tempString[len-1] = '\0';
len = strlen(tempString);
} // if
} // while
最佳答案
fgets(tempString, maxLength, stdin);
最多读取maxLength-1
个字节。有关详细信息,请参见fgets man page。
这意味着strlen(tempString)
必须始终小于maxLength
。
您是不是要使用<
作为循环测试?
while ((int)len < maxLength)