gpt4 book ai didi

c - 重置指向文件开头的指针

转载 作者:太空狗 更新时间:2023-10-29 16:31:41 25 4
gpt4 key购买 nike

我如何才能将指针重置为命令行输入或文件的开头。例如,我的函数是从文件中读取一行并使用 getchar() 打印出来

    while((c=getchar())!=EOF)
{
key[i++]=c;
if(c == '\n' )
{
key[i-1] = '\0'
printf("%s",key);
}
}

运行后,指针指向 EOF 我假设?我如何让它再次指向文件的开头/甚至重新读取输入文件

我输入为 (./function < inputs.txt)

最佳答案

如果你有一个 FILE* 而不是 stdin,你可以使用:

rewind(fptr);

fseek(fptr, 0, SEEK_SET);

将指针重置为文件的开头。

你不能为 stdin 这样做。

如果您需要能够重置指针,将文件作为参数传递给程序并使用 fopen 打开文件并读取其内容。

int main(int argc, char** argv)
{
int c;
FILE* fptr;

if ( argc < 2 )
{
fprintf(stderr, "Usage: program filename\n");
return EXIT_FAILURE;
}

fptr = fopen(argv[1], "r");
if ( fptr == NULL )
{
fprintf(stderr, "Unable to open file %s\n", argv[1]);
return EXIT_FAILURE;
}

while((c=fgetc(fptr))!=EOF)
{
// Process the input
// ....
}

// Move the file pointer to the start.
fseek(fptr, 0, SEEK_SET);

// Read the contents of the file again.
// ...

fclose(fptr);

return EXIT_SUCCESS;
}

关于c - 重置指向文件开头的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366665/

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