【问题标题】:Care to check what is wrong with my C code注意检查我的 C 代码有什么问题
【发布时间】:2016-07-14 20:57:13
【问题描述】:

在我的在线课程中,我再次遇到来自此编译器的错误消息。我不知道这个语法错误可能是什么,因为我已经多次查看代码并且它与我正在处理的章节中给出的示例代码几乎相同。我认为经验丰富的新眼睛可以发现我在这里缺少的东西 一切都很难,这可能是完全愚蠢的事情

编辑:错误消息只是语法错误 " 源代码中存在语法错误 检查,如果您忘记了行尾的分号。 查看 { 附近的源代码。 "

EDIT2:是的,这是缺少“)”再次感谢您的快速帮助!

#include <stdio.h>
int main(void)
{
int i ;
FILE *kirj_tied ;
char luettelo[] = "luettelo.txt";

struct henkilo 
{
    char etunimi[21];
    char sukunimi[21];
    char numero[21];
};

struct henkilo henkilo_lista[50];

for (i=0 ; i < 50 ; i++)
{
    printf("Anna etunimi:\n");
    scanf("%s",henkilo_lista[i].etunimi);
    printf("Anna sukunimi:\n");
    scanf("%s",henkilo_lista[i].sukunimi);
    printf("Anna puhelinnumero:\n");
    scanf("%s",henkilo_lista[i].numero);
}

if ((kirj_tied = fopen(luettelo,"w") == NULL)
    {
        printf("Virhe tiedoston avaamisessa.");
        return 0 ;
    }
else
    {
        for(i=0 ; i<50 ; i++)
        {
            fprintf(kirj_tied,"%s %s %s\n", henkilo_lista[i].etunimi,henkilo_lista[i].sukunimi,henkilo_lista[i].numero);
        }
    }

    fclose(kirj_tied);
    printf("Tietojen tallennus onnistui.");
    return 0 ;
}

【问题讨论】:

  • 请添加错误信息。
  • “在我的在线课程中,我再次遇到来自此编译器的错误消息。”您认为没有必要将其包含在问题中?
  • 没有错误信息吗?如果你把它包括在内会有所帮助......
  • 如果您发布错误消息会有所帮助,但它很可能是这一行:if ((kirj_tied = fopen(luettelo,"w") == NULL),因为它有额外的( 字符。
  • fopen() 行中缺少括号。

标签: c syntax syntax-error


【解决方案1】:

线

if ((kirj_tied = fopen(luettelo,"w") == NULL)

可能缺少括号?应该是:

if ((kirj_tied = fopen(luettelo,"w")) == NULL)

【讨论】:

    【解决方案2】:

    您在if-statement 的行中缺少右括号 ())。

    它应该是

    if ((kirj_tied = fopen(luettelo, "w")) == NULL) {
                                         ^ that one
    

    在代码上运行代码缩进器会标记这一点。大多数编译器会给你一个更有帮助的错误信息。

    例如,Clang 编译器说

    prog.c:28:5: error: expected ')'
        {
        ^
    prog.c:27:4: note: to match this '('
    if ((kirj_tied = fopen(luettelo,"w") == NULL)
       ^
    

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多