簡體   English   中英

我的程序無法編譯,誰能幫我在哪里修復

[英]My program doesn't compilem, can anyone help me where should I fix

我正在嘗試讀取數組中的 csv 文件。 並且還從 c 程序更改 csv 文件的值。

我嘗試使用 struct 來存儲變量。 編譯程序時, strtok出現錯誤, strcpy顯示不安全 function。

這是在另一個 function 中打印時的錯誤

錯誤 C2371 'printValues':重新定義; 不同的基本類型

我的代碼:

typedef struct key_value
{
    char name[100];
    int price;
    int zaiko;
}dict;

    ...
    dict values[999];
    int i = 0;
    while (fgets(buff, 1024, fp))
    {
        field_count = 0;
        row_count++;
        if (row_count == 1)
            continue; 

        char* field = strtok(buff, ",");
        while (field)
        {
            if (field_count == 0)
                strcpy(values[i].name, field);
            if (field_count == 1)
                strcpy(values[i].price, field);
            if (field_count == 2)
                strcpy(values[i].zaiko, field);

            field = strtok(NULL, ",");
            field_count++;
        }
        i++;
    }
    fclose(fp);
    printValues(values);
    return 0;
}

void printValues(dict values[])
{
    for (int i = 0; i < 999; i++)
    {
        printf("Name--->%s, price---->%d, zaiko---->%d\n",
            values[i].name, values[i].price, values[i].zaiko);
    }
}

printValues在聲明之前使用。

你可以:

  • 要么將printValues放在您調用它的 function之前
  • 或提出void printValues(dict values[]); 在你使用它之前。

前向聲明示例:

void printValues(dict values[]);   // forward declaration

...

void SomeFunction()
{
   ...
   printValues(values);
   ...
}

void printValues(dict values[])
{
    for (int i = 0; i < 999; i++)
    {
        printf("Name--->%s, price---->%d, zaiko---->%d\n",
            values[i].name, values[i].price, values[i].zaiko);
    }
}

假設您使用的是 Visual Studio:

為了擺脫“不安全功能”錯誤:將其放在代碼的最頂部:

#define _CRT_SECURE_NO_WARNINGS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM