我的任务是重定向一个文本文件并对其进行各种操作,一切正常,除了我有一个小问题:
所以读取输入的主要函数是getline1():
char* getline1(){
char *LinePtr = (char*)malloc(sizeof(char*)*LINE);
int i = 0;
for ( ; (*(LinePtr+i) = getc(stdin)) != '\n' ; i++){}
*(LinePtr+i) = '\0';
return LinePtr;
}
它返回一个指向单行字符数组的指针,
所以我们知道一个新行用 '\n' 字符分隔,
我以前遇到的问题是当我像这样编写 getline1() 函数时:
for (int i = 0 ; Line[i] != '\n' ; i++){
Line[i] = getc(stdin);
}
因为从逻辑上讲它可能是真实的,所以 getc() 是一个流式函数,我看到网上的回答说这不起作用,不太明白为什么。
无论如何,最大的问题是我需要知道文本中有多少行,以便我可以停止读取值,或者从 getline1() 函数中知道没有下一行,我已经完成了。
我们需要考虑的事情: 1.only <stdio.h> <stdlib.h> 需要使用 2.Im 使用 Linux Ubuntu 和 gcc 编译器 3.ridirection 类似于 ./Run<input.txt
我也知道 stdin 是一个文件指针,没有找到可以帮助我的方法。
谢谢你,丹尼斯