gpt4 book ai didi

c - 从作为命令行参数传递的文件中读取

转载 作者:太空狗 更新时间:2023-10-29 11:26:37 24 4
gpt4 key购买 nike

我正在尝试解析给定的文本文件,但到目前为止,我的程序似乎没有正确读取。

#include <stdio.h>


int main(int argc, char *argv[])
{
FILE *fr; //file pointer
int buildingFloors = 1;

printf("sanity check\n");

fr = fopen (argv[0], "r");
fscanf(fr, "%d", &buildingFloors );

printf("%d\n", buildingFloors);

fclose(fr);

return 0;
}

我编译程序并使用以下命令在我的 redhat linux 机器上运行它:

./sjf file.text

file.text 是以“4”作为第一个字符的文本文档。所以我希望我的输出是

sanity check
4

但是,当我运行我的程序时,我反而得到了

sanity check
1

这意味着 fscanf 没有正确读取第一个字符 -- 4. 我是否有一些语法错误阻止了预期的代码功能?我应该扫描一个字符,然后以某种方式将其转换为 int 吗?

最佳答案

argv[0] 是程序的名称(在您的情况下为 ./sjf),因此您正在尝试读取自己程序的可执行文件。使用 argv[1] 获取第一个真正的程序参数。

关于c - 从作为命令行参数传递的文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5123281/

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