gpt4 book ai didi

c - 这是如何读入文件的?

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:29 24 4
gpt4 key购买 nike

我一直在努力弄清楚这段代码是如何读入文件的。我一直在努力让它工作,但它每次都会崩溃。有人可以解释这应该如何读入文件吗?

#include <stdio.h>

main(argc,argv)
int argc;
char **argv;
{
FILE *fo1, *fo2,*fp1, *fopen();
char *foobar;

argc--; argv++;
foobar = *argv;
fp1=fopen(foobar,"rb");

argc--; argv++;
foobar = *argv;
fo1=fopen(foobar,"wb");

argc--; argv++;
foobar = *argv;
fo2=fopen(foobar,"wb");

程序在第三个“argv++”处崩溃。我假设 argv 应该获取我想为 fp1 读入的文件的地址,然后它是内存中创建其他两个文件(fo1、fo2)的位置但是在 argv 的第一次增量之后它变为空并且没有任何反应.

最佳答案

argv 是指向保存命令行参数的数组的指针。 argv[0] 是指向包含程序文件名的字符串的指针; argv[1] 指向包含第一个命令行参数的字符串;等等

argc 告诉您有多少参数(包括程序名称)。因此,正确的代码应该在假设传入了多少参数之前检查这一点。如果索引 argv 一个元素超出最后一个参数,您将得到一个 NULL。对其进行索引超出该范围是未定义的行为(您正在读取超出数组末尾的内容)。

关于c - 这是如何读入文件的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147019/

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