首先,我通过调用fread将文本读入缓冲区,然后我想逐行读取它,该怎么做?我尝试使用 sscanf ,但似乎不起作用。
char textbuf[4096];
char line[256];
FILE *fp;
fp = fopen(argv[1],"r");
memset(textbuf, 0, 4096);
fread(textbuf, 1, 4096, fp);
我知道使用 fgets 是一个好方法。我只是想知道这个方法是否可以做同样的事情。
尝试这个:
fgets(textbuf, sizeof(textbuf), fp);
要逐行阅读,您可以使用:fgets(line, 128, fp)
or getline(&line, &size, fp);
EDIT
如果你想从变量中读取它,请查看strtok()
功能:
char * line = strtok(strdup(buffer), "\n");
while(line) {
printf("%s", line);
line = strtok(NULL, "\n");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)