gpt4 book ai didi

c - 从 MPI c 中的命令行参数读取字符串

转载 作者:行者123 更新时间:2023-11-30 15:49:43 24 4
gpt4 key购买 nike

我必须编写一个 MPI c 程序。尽管我添加了 string.h ,但我的编译器无法识别数据类型 string 。我想从命令行读取一个字符串并将其传递给下面给出的函数

int find_rows(char * file)
{
int length=0;
char buf[BUFSIZ];
FILE *fp;
fp=fopen(file, "r");
while ( !feof(fp))
{
// null buffer, read a line
buf[0] = 0;
fgets(buf, BUFSIZ, fp);
// if it's a blank line, ignore
if(strlen(buf) > 1)
{
++length;
}

}
fclose(fp);
#ifdef DEBUG
printf("lFileLen = %d\n", length);
#endif
return length;

}

当我有这个功能时,这个功能才有效

 char file[50] = "m5-B.ij";

然后调用

nvtxs = find_rows(&file );

但是当我给出时给我段错误

 nvtxs = find_rows(argv[1] );

有人可以帮忙吗?

最佳答案

而不是

find_rows(&file );

通话

find_rows(file );

file 已经是一个指针。您正在将指针的地址传递给函数。

然后在函数 find_rows 中,您尝试打开无效文件并使用 fp 进行操作,这是一个空指针,导致未定义的行为

编辑

您的调用 nvtxs = find_rows(argv[1] ); 是正确的。问题是 fp=fopen(file, "r"); 如果文件不存在或找不到文件,则可能无法打开该文件。

关于c - 从 MPI c 中的命令行参数读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142064/

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