我需要一个函数/方法,它将接收一个 char 数组并将其设置为从标准输入读取的字符串。它需要返回读取的最后一个字符作为其返回类型,因此我可以确定它是否到达了行尾或文件标记的末尾。
这是我到目前为止所拥有的,我有点基于这里的代码
更新:我改变了它,但现在它只是在文本后按回车时崩溃。我知道这种方式效率低下,并且 char 不是 EOF 检查的最佳选择,但现在我只是想让它返回字符串。我需要它以这种方式而不是其他方式来做到这一点。我需要字符串是行的确切长度,并返回一个值,它是换行符或 EOF int,我相信它仍然可以在 char 值中使用。
这个程序是 C 而不是 C++
char getLine(char **line);
int main(int argc, char *argv[])
{
char *line;
char returnVal = 0;
returnVal = getLine(&line);
printf("%s", line);
free(line);
system("pause");
return 0;
}
char getLine(char **line) {
unsigned int lengthAdder = 1, counter = 0, size = 0;
char charRead = 0;
*line = malloc(lengthAdder);
while((charRead = getc(stdin)) != EOF && charRead != '\n')
{
*line[counter++] = charRead;
*line = realloc(*line, counter);
}
*line[counter] = '\0';
return charRead;
}
感谢您提前提供任何帮助!