小心检查我的 C 代码有什么问题
Care to check what is wrong with my C code
我在网上 class 再次遇到来自此编译器的错误消息。我不知道这个语法错误可能是什么,因为我已经多次检查代码并且它与我正在研究的章节中给出的示例代码几乎相同。我以为新鲜的经验丰富的眼睛可以发现我在这里缺少的东西
很难,这可能是完全愚蠢的事情
编辑:错误消息只是语法错误
“
源代码中存在语法错误
检查一下,是否忘记了行尾的分号。
检查 {. 附近的源代码。 “
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)
可能缺少括号?应该是:
if ((kirj_tied = fopen(luettelo,"w")) == NULL)
您在 if
语句行中缺少右括号 ()
)。
应该是
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)
^
我在网上 class 再次遇到来自此编译器的错误消息。我不知道这个语法错误可能是什么,因为我已经多次检查代码并且它与我正在研究的章节中给出的示例代码几乎相同。我以为新鲜的经验丰富的眼睛可以发现我在这里缺少的东西 很难,这可能是完全愚蠢的事情
编辑:错误消息只是语法错误 “ 源代码中存在语法错误 检查一下,是否忘记了行尾的分号。 检查 {. 附近的源代码。 “
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)
可能缺少括号?应该是:
if ((kirj_tied = fopen(luettelo,"w")) == NULL)
您在 if
语句行中缺少右括号 ()
)。
应该是
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)
^