gpt4 book ai didi

c - 如何将指针与 getc 结合使用?

转载 作者:行者123 更新时间:2023-12-01 06:15:45 25 4
gpt4 key购买 nike

我有一个函数 getNum(),它从文件中获取一个数字并返回它。当我回到 getNum() 时,我丢失了指针,它再次从文件的开始处开始。我想知道如何获取 getc 所在的位置,然后返回到那个地方。我在手册或论坛中找不到如何执行此操作。谢谢。

#include <stdio.h>
#include <stdlib.h>

int getNum();
int getLine();
int getMatrix();



main() {
int num;
int two;
num = getNum();
printf("%d\n", num);
two = getNum();
printf("%d\n", two);

}

int getNum() {
FILE *infile;
infile = fopen("matrix.txt","r");
int c;
double value = 0;

while ((c=getc(infile)) != '\n') {
if(c==32){
if(value != 0){
return(value);
}
//otherwise keep getting characters
}
else if ((c<=47)||(c>=58)){
printf("incorrect number input %d\n", c);
exit(1);
}
else {
value = (10*value) + c - '0';
}
}
return(value);
}

最佳答案

原因是您每次执行getNum 时都会重新打开文件。当您打开文件进行阅读时,它会从文件的开头开始。而是只打开一次。

int main(int argc, char *argv[])
{
...
FILE *infile;
...
infile = fopen("matrix.txt","r");
...
getNum(infile)
...
fclose(infile);
return 0;
}


int getNum(File *infile)
{
// Same as before, just no file opening.
}

关于c - 如何将指针与 getc 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com