gpt4 book ai didi

c - 打开 .txt 文件进行写入时出现段错误

转载 作者:行者123 更新时间:2023-11-30 17:01:23 24 4
gpt4 key购买 nike

我正在尝试打开特定路径中的.txt文件进行写入。我不想覆盖.txt文件中的前k个字符

Example:
File before overriding:
0123456789s

File after overriding:
tonytannous

但是,我遇到了段错误。我在windows7上运行,但我正在使用VMWare在VS(其操作系统为linux)上编译和运行代码。

int func (int k, char* data, char* path)
{
int fp;
fp = open(path, O_RDWR);
if (fp == -1)
return -1;
if (write (fp, data, k) != k)
return -1;
else
return 0;
}

int main()
{
char data[10] = "tonytannou";
char path[1000];
int k = 3;
scanf("%s", &path);
return func(k, data, path);
}

我确保路径拼写正确,并且文件确实存在。知道为什么会发生这样的事情吗?

编辑:使用了perror(),错误是ILLEGAL SEEK我现在更困惑了。

最佳答案

scanf 中的“path”数组不需要“&”运算符

在C中,数组本身的名称就是一个指针(在这种情况下,“path”是路径数组的指针),不需要通过“&”运算符获取其地址并将其传递给scanf。

scanf 完成后,您可以使用调试工具检查“path”数组中存储的值。

关于c - 打开 .txt 文件进行写入时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089451/

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