gpt4 book ai didi

c - 放弃标题行

转载 作者:行者123 更新时间:2023-11-30 16:19:14 24 4
gpt4 key购买 nike

我有一个 .tsv 文件,在编译读取该文件的代码后,我可以直接将其输入到我的代码中,或者使用“<”输入您所说的任何内容。我只是在整个代码中使用 scanf 来读取数据行,而不是任何 fopen。 header 是 3 个非 double 字符,旨在读取然后丢弃,以便我可以将 3 列下的每个 double 字符放入单独的数组中。

我似乎无法让我的代码跳过 .tsv 文件中的第一行输入,然后继续实际获取 3 个 double 并将它们放入 3 个单独的数组中。

int main(int argc, char *argv[])
{

int i = 0;
double X[MAX], Y[MAX], KG[MAX];
void data_lines();
while (scanf("%lf%lf%lf",&X[i],&Y[i],&KG[i] )== 3) {
printf("%lf%lf%lf\n", X[i],Y[i],KG[i]);
i++;
}
printf("%d", MAX);
return 0;
}

void
data_lines() {
char ch;
while (scanf("%c",&ch)!=EOF) {
if (ch == '\n'){
return;
}
}
}

当我输出此代码时,我得到的只是打印的 999。所以我猜我的数组中没有任何内容,并且第一个数据行没有被跳过。

最佳答案

以下建议代码:

  1. 干净地编译
  2. 执行所需的功能

注意前向引用/原型(prototype)

注意子函数的调用方式

注意头文件:stdio.h 的包含方式

注意值 MAX 的定义

现在,建议的代码:

// the header file needed for the function: scanf() and function: printf() and the value: EOF
#include <stdio.h>

// define a value and give it a meaningful name
#define MAX 50

// prototypes notice the prototype has 'void' but the actual function has nothing between the parens
void data_lines( void );

// notice the signature when the parameters are not used
int main( void )
{
int i = 0;
double X[MAX], Y[MAX], KG[MAX];

// call the sub function
// which returns nothing and has no parameters
data_lines();

while (scanf("%lf%lf%lf",&X[i],&Y[i],&KG[i] )== 3)
{
printf("%lf%lf%lf\n", X[i],Y[i],KG[i]);
i++;
}
printf("%d", MAX);
return 0;
}


void data_lines()
{
char ch;
while (scanf("%c",&ch)!=EOF)
{
if (ch == '\n')
{
return;
}
}
}

关于c - 放弃标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55671491/

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