|
查看: 874|回复: 14
|
C Language: 怎么debug这个coding?[已解决]
[复制链接]
|
|
|
- #include<stdio.h>
- int main()
- {
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
- char availability;
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ";
- gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ";
- gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ";
- scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ";
- scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ";
- gets(HORROR[0].dvdClassification);
- printf("Enter availability for a HORROR dvd:\n";
- printf("Enter T for TRUE or enter F for FALSE: ";
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- HORROR[0].dvdAvailability="TRUE";
- }
- else
- {
- HORROR[0].dvdAvailability="FALSE";
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ";
- gets(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ";
- gets(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ";
- scanf("%d",&COMEDY[0].dvdDurationInHours);
- printf("Enter duration for a COMEDY dvd in minutes: ";
- scanf("%d",&COMEDY[0].dvdDurationInMinutes);
- printf("Enter classification for a COMEDY dvd: ";
- gets(COMEDY[0].dvdClassification);
- printf("Enter availability for a COMEDY dvd: \n";
- printf("Enter T for TRUE or enter F for FALSE: ";
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- COMEDY[0].dvdAvailability="TRUE";
- }
- else
- {
- COMEDY[0].dvdAvailability="FALSE";
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ";
- gets(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ";
- gets(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ";
- scanf("%d",&ACTION[0].dvdDurationInHours);
- printf("Enter duration for a ACTION dvd in minutes: ";
- scanf("%d",&ACTION[0].dvdDurationInMinutes);
- printf("Enter classification for a ACTION dvd: ";
- gets(ACTION[0].dvdClassification);
- printf("Enter availability for a ACTION dvd: \n";
- printf("Enter T for TRUE or enter F for FALSE: ";
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- ACTION[0].dvdAvailability="TRUE";
- }
- else
- {
- ACTION[0].dvdAvailability="FALSE";
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details////////
- //////////////////////////////////////
- printf("============================\n";
- printf("HORROR dvd details\n";
- printf("============================\n";
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details////////
- //////////////////////////////////////
- printf("============================\n";
- printf("COMEDY dvd details\n";
- printf("============================\n";
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details////////
- //////////////////////////////////////
- printf("============================\n";
- printf("ACTION dvd details\n";
- printf("============================\n";
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
复制代码 都是一样的error:
error C2106: '=' : left operand must be l-value
怎么debug?
谢谢。。。
[ 本帖最后由 蜡笔小烦 于 19-10-2008 07:27 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 16-10-2008 11:15 AM
|
显示全部楼层
|
char array 是不能直接 assign string 的,你必须使用 strcpy()。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 16-10-2008 11:33 AM
|
显示全部楼层
原帖由 geekman 于 16-10-2008 11:15 AM 发表 
char array 是不能直接 assign string 的,你必须使用 strcpy()。
-
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char availability;
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
-
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
-
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ");
- gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ");
- gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ");
- scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ");
- scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ");
- gets(HORROR[0].dvdClassification);
- printf("Enter availability for a HORROR dvd:\n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(HORROR[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(HORROR[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ");
- gets(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ");
- gets(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ");
- scanf("%d",&COMEDY[0].dvdDurationInHours);
- printf("Enter duration for a COMEDY dvd in minutes: ");
- scanf("%d",&COMEDY[0].dvdDurationInMinutes);
- printf("Enter classification for a COMEDY dvd: ");
- gets(COMEDY[0].dvdClassification);
- printf("Enter availability for a COMEDY dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(COMEDY[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(COMEDY[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ");
- gets(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ");
- gets(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ");
- scanf("%d",&ACTION[0].dvdDurationInHours);
- printf("Enter duration for a ACTION dvd in minutes: ");
- scanf("%d",&ACTION[0].dvdDurationInMinutes);
- printf("Enter classification for a ACTION dvd: ");
- gets(ACTION[0].dvdClassification);
- printf("Enter availability for a ACTION dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(ACTION[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(ACTION[0].dvdAvailability,"FALSE");
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("HORROR dvd details\n");
- printf("============================\n");
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("COMEDY dvd details\n");
- printf("============================\n");
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("ACTION dvd details\n");
- printf("============================\n");
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
复制代码
warning C4700: local variable 'availability' used without having been initialized
我试着去debug它
结果error反而更多。。 |
|
|
|
|
|
|
|
|
|
|
发表于 16-10-2008 11:38 AM
|
显示全部楼层
scanf("%c",availability);
应该是
scanf("%c",&availability);
你要让scanf指导储存的地方的地址是什么, 说以必须用address operator &。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 16-10-2008 11:41 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 16-10-2008 12:10 PM
|
显示全部楼层
- #include
- #include
- int main()
- {
- char availability;
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ");
- gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ");
- gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ");
- scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ");
- scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ");
- gets(HORROR[0].dvdClassification);
- printf("Enter availability for a HORROR dvd:\n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(HORROR[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(HORROR[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ");
- gets(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ");
- gets(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ");
- scanf("%d",&COMEDY[0].dvdDurationInHours);
- printf("Enter duration for a COMEDY dvd in minutes: ");
- scanf("%d",&COMEDY[0].dvdDurationInMinutes);
- printf("Enter classification for a COMEDY dvd: ");
- gets(COMEDY[0].dvdClassification);
- printf("Enter availability for a COMEDY dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(COMEDY[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(COMEDY[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ");
- gets(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ");
- gets(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ");
- scanf("%d",&ACTION[0].dvdDurationInHours);
- printf("Enter duration for a ACTION dvd in minutes: ");
- scanf("%d",&ACTION[0].dvdDurationInMinutes);
- printf("Enter classification for a ACTION dvd: ");
- gets(ACTION[0].dvdClassification);
- printf("Enter availability for a ACTION dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(ACTION[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(ACTION[0].dvdAvailability,"FALSE");
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("HORROR dvd details\n");
- printf("============================\n");
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("COMEDY dvd details\n");
- printf("============================\n");
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("ACTION dvd details\n");
- printf("============================\n");
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
复制代码
output不对耶~
看不出code有什么问题。。。
output如下:
Enter id number for a HORROR dvd: 123abc
Enter title for a HORROR dvd: Spiderman
Enter duration for a HORROR dvd in hours: 3
Enter duration for a HORROR dvd in minutes: 15
Enter classification for a HORROR dvd: Enter availability for a HORROR dvd:
Enter T for TRUE or enter F for FALSE: |
|
|
|
|
|
|
|
|
|
|
发表于 16-10-2008 06:51 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 16-10-2008 08:33 PM
|
显示全部楼层
|
just add this: getchar(); after each scanf to remove the enter key feed. |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2008 03:22 PM
|
显示全部楼层
原帖由 solidx 于 16-10-2008 08:33 PM 发表 
just add this: getchar(); after each scanf to remove the enter key feed.
这解决了dvdClassification的问题
可是问题又接着来了。。。
-
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char availability;
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
-
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
-
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ");
- gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ");
- gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ");
- scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ");
- scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ");
- gets(HORROR[0].dvdClassification);
- getchar();
- printf("Enter availability for a HORROR dvd (T for TRUE or F for FALSE):\n");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(HORROR[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(HORROR[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ");
- gets(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ");
- gets(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ");
- scanf("%d",&COMEDY[0].dvdDurationInHours);
- printf("Enter duration for a COMEDY dvd in minutes: ");
- scanf("%d",&COMEDY[0].dvdDurationInMinutes);
- printf("Enter classification for a COMEDY dvd: ");
- gets(COMEDY[0].dvdClassification);
- getchar();
- printf("Enter availability for a COMEDY dvd (T for TRUE or F for FALSE):\n");
- scanf("%c",&availability);
- // getchar();
- if (availability=='T'||availability=='t')
- {
- strcpy(COMEDY[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(COMEDY[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ");
- gets(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ");
- gets(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ");
- scanf("%d",&ACTION[0].dvdDurationInHours);
- printf("Enter duration for a ACTION dvd in minutes: ");
- scanf("%d",&ACTION[0].dvdDurationInMinutes);
- printf("Enter classification for a ACTION dvd: ");
- gets(ACTION[0].dvdClassification);
- getchar();
- printf("Enter availability for a ACTION dvd (T for TRUE or F for FALSE):\n");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(ACTION[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(ACTION[0].dvdAvailability,"FALSE");
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("HORROR dvd details\n");
- printf("============================\n");
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("COMEDY dvd details\n");
- printf("============================\n");
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("ACTION dvd details\n");
- printf("============================\n");
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
-
复制代码
Enter id number for a HORROR dvd: abc123
Enter title for a HORROR dvd: Spiderman
Enter duration for a HORROR dvd in hours: 2
Enter duration for a HORROR dvd in minutes: 15
Enter classification for a HORROR dvd: PG18
Enter availability for a ACTION dvd (T for TRUE or F for FALSE): Enter id number for a COMEDY dvd:Enter title for a COMEDY dvd: _
请问这是怎么一回事呢? |
|
|
|
|
|
|
|
|
|
|
发表于 18-10-2008 03:34 PM
|
显示全部楼层
input buffer的問題..
建議自己另外寫讀取value然後clear buffer的function
例如
char readChar() {
char c = ' ';
scanf("%c", &c);
while(getchar() != '\n');
return c;
} |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2008 03:50 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 18-10-2008 03:58 PM
|
显示全部楼层
- printf("Enter id number for a HORROR dvd: ");
- strcpy(HORROR[0].idno, readStr());
- printf("Enter title for a HORROR dvd: ");
- strcpy(HORROR[0].dvdTitle, readStr());
- printf("Enter duration for a HORROR dvd in hours: ");
- HORROR[0].dvdDurationInHours = readInt();
- printf("Enter duration for a HORROR dvd in minutes: ");
- HORROR[0].dvdDurationInMinutes = readInt();
- printf("Enter classification for a HORROR dvd: ");
- strcpy(HORROR[0].dvdClassification, readStr());
- printf("Enter availability for a HORROR dvd (T for TRUE or F for FALSE):\n");
- availability = readChar();
复制代码 readInt(), readStr() 自己寫... |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2008 04:08 PM
|
显示全部楼层
- #include<stdio.h>
- #include<string.h>
- char readStr()
- {
- char c[] = {' '};
- scanf("%s", &c);
- while(getchar() != '\n');
- return c;
- }
- char readChar()
- {
- char c = ' ';
- scanf("%c", &c);
- while(getchar() != '\n');
- return c;
- }
- int readInt() {
- int c = ' ';
- scanf("%d", &c);
- while(getchar() != '\n');
- return c;
- }
- int main()
- {
- char availability;
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ");
- strcpy(HORROR[0].idno, readStr());
- //gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ");
- strcpy(HORROR[0].dvdTitle, readStr());
- //gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ");
- HORROR[0].dvdDurationInHours = readInt();
- //scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ");
- HORROR[0].dvdDurationInMinutes = readInt();
- //scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ");
- strcpy(HORROR[0].dvdClassification, readStr());
- //gets(HORROR[0].dvdClassification);
- printf("Enter availability for a HORROR dvd (T for TRUE or F for FALSE):\n");
- availability = readChar();
- //scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(HORROR[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(HORROR[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ");
- gets(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ");
- gets(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ");
- scanf("%d",&COMEDY[0].dvdDurationInHours);
- printf("Enter duration for a COMEDY dvd in minutes: ");
- scanf("%d",&COMEDY[0].dvdDurationInMinutes);
- printf("Enter classification for a COMEDY dvd: ");
- gets(COMEDY[0].dvdClassification);
- getchar();
- printf("Enter availability for a COMEDY dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",&availability);
- // getchar();
- if (availability=='T'||availability=='t')
- {
- strcpy(COMEDY[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(COMEDY[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ");
- gets(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ");
- gets(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ");
- scanf("%d",&ACTION[0].dvdDurationInHours);
- printf("Enter duration for a ACTION dvd in minutes: ");
- scanf("%d",&ACTION[0].dvdDurationInMinutes);
- printf("Enter classification for a ACTION dvd: ");
- gets(ACTION[0].dvdClassification);
- getchar();
- printf("Enter availability for a ACTION dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(ACTION[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(ACTION[0].dvdAvailability,"FALSE");
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("HORROR dvd details\n");
- printf("============================\n");
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("COMEDY dvd details\n");
- printf("============================\n");
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("ACTION dvd details\n");
- printf("============================\n");
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
复制代码
我硬着头皮试着做了
可是。。。。
warning C4047: 'return' : 'char ' differs in levels of indirection from 'char [1]'
warning C4172: returning address of local variable or temporary
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
warning C4024: 'strcpy' : different types for formal and actual parameter 2
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
warning C4024: 'strcpy' : different types for formal and actual parameter 2
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
warning C4024: 'strcpy' : different types for formal and actual parameter 2 |
|
|
|
|
|
|
|
|
|
|
发表于 19-10-2008 05:37 PM
|
显示全部楼层
改了readStr...- #include<stdio.h>
- #include<string.h>
- void readStr(char *str){
- int i;
- char c;
- for(i = 0; (c = getchar()) != '\n'; i++)
- str[i] = c;
- str[i] = '\0';
- }
- char readChar()
- {
- char c = ' ';
- scanf("%c", &c);
- while(getchar() != '\n');
- return c;
- }
- int readInt() {
- int c = ' ';
- scanf("%d", &c);
- while(getchar() != '\n');
- return c;
- }
- int main()
- {
- char availability;
- struct dvd_details
- {
- char idno[20];
- char dvdTitle[50];
- int dvdDurationInHours;
- int dvdDurationInMinutes;
- char dvdClassification[10];
- char dvdAvailability[10];
- };
- struct dvd_details HORROR[100];
- struct dvd_details COMEDY[100];
- struct dvd_details ACTION[100];
- /////////////////////////////////////////////////
- //////////Input Details for HORROR dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a HORROR dvd: ");
- readStr(HORROR[0].idno);
- //gets(HORROR[0].idno);
- printf("Enter title for a HORROR dvd: ");
- readStr(HORROR[0].dvdTitle);
- //gets(HORROR[0].dvdTitle);
- printf("Enter duration for a HORROR dvd in hours: ");
- HORROR[0].dvdDurationInHours = readInt();
- //scanf("%d",&HORROR[0].dvdDurationInHours);
- printf("Enter duration for a HORROR dvd in minutes: ");
- HORROR[0].dvdDurationInMinutes = readInt();
- //scanf("%d",&HORROR[0].dvdDurationInMinutes);
- printf("Enter classification for a HORROR dvd: ");
- readStr(HORROR[0].dvdClassification);
- //gets(HORROR[0].dvdClassification);
- printf("Enter availability for a HORROR dvd (T for TRUE or F for FALSE):");
- availability = readChar();
- //scanf("%c",&availability);
- if (availability=='T'||availability=='t')
- {
- strcpy(HORROR[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(HORROR[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for COMEDY dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a COMEDY dvd: ");
- readStr(COMEDY[0].idno);
- printf("Enter title for a COMEDY dvd: ");
- readStr(COMEDY[0].dvdTitle);
- printf("Enter duration for a COMEDY dvd in hours: ");
- COMEDY[0].dvdDurationInHours = readInt();
- printf("Enter duration for a COMEDY dvd in minutes: ");
- COMEDY[0].dvdDurationInMinutes = readInt();
- printf("Enter classification for a COMEDY dvd: ");
- readStr(COMEDY[0].dvdClassification);
- printf("Enter availability for a COMEDY dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- availability = readChar();
- if (availability=='T'||availability=='t')
- {
- strcpy(COMEDY[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(COMEDY[0].dvdAvailability,"FALSE");
- }
- /////////////////////////////////////////////////
- //////////Input Details for ACTION dvds//////////
- /////////////////////////////////////////////////
- printf("Enter id number for a ACTION dvd: ");
- readStr(ACTION[0].idno);
- printf("Enter title for a ACTION dvd: ");
- readStr(ACTION[0].dvdTitle);
- printf("Enter duration for a ACTION dvd in hours: ");
- ACTION[0].dvdDurationInHours = readInt();
- printf("Enter duration for a ACTION dvd in minutes: ");
- ACTION[0].dvdDurationInMinutes = readInt();
- printf("Enter classification for a ACTION dvd: ");
- readStr(ACTION[0].dvdClassification);
- printf("Enter availability for a ACTION dvd: \n");
- printf("Enter T for TRUE or enter F for FALSE: ");
- availability = readChar();
- if (availability=='T'||availability=='t')
- {
- strcpy(ACTION[0].dvdAvailability,"TRUE");
- }
- else
- {
- strcpy(ACTION[0].dvdAvailability,"FALSE");
- }
- //////////////////////////////////////
- ////Print out HORROR dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("HORROR dvd details\n");
- printf("============================\n");
- printf("ID number for HORROR dvd: %s",HORROR[0].idno);
- printf("Title for HORROR dvd: %s",HORROR[0].dvdTitle);
- printf("Duration for HORROR dvd in hours: %d",HORROR[0].dvdDurationInHours);
- printf("Duration for HORROR dvd in minutes: %d",HORROR[0].dvdDurationInMinutes);
- printf("Classification for HORROR dvd: %s",HORROR[0].dvdClassification);
- printf("Availability for HORROR dvd: %s",HORROR[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out COMEDY dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("COMEDY dvd details\n");
- printf("============================\n");
- printf("ID number for COMEDY dvd: %s",COMEDY[0].idno);
- printf("Title for COMEDY dvd: %s",COMEDY[0].dvdTitle);
- printf("Duration for COMEDY dvd in hours: %d",COMEDY[0].dvdDurationInHours);
- printf("Duration for COMEDY dvd in minutes: %d",COMEDY[0].dvdDurationInMinutes);
- printf("Classification for COMEDY dvd: %s",COMEDY[0].dvdClassification);
- printf("Availability for COMEDY dvd: %s",COMEDY[0].dvdAvailability);
- //////////////////////////////////////
- ////Print out ACTION dvd details//////
- //////////////////////////////////////
- printf("============================\n");
- printf("ACTION dvd details\n");
- printf("============================\n");
- printf("ID number for ACTION dvd: %s",ACTION[0].idno);
- printf("Title for ACTION dvd: %s",ACTION[0].dvdTitle);
- printf("Duration for ACTION dvd in hours: %d",ACTION[0].dvdDurationInHours);
- printf("Duration for ACTION dvd in minutes: %d",ACTION[0].dvdDurationInMinutes);
- printf("Classification for ACTION dvd: %s",ACTION[0].dvdClassification);
- printf("Availability for ACTION dvd: %s",ACTION[0].dvdAvailability);
- return 0;
- }
复制代码- Enter id number for a HORROR dvd: 1
- Enter title for a HORROR dvd: Scary Movie
- Enter duration for a HORROR dvd in hours: 1
- Enter duration for a HORROR dvd in minutes: 30
- Enter classification for a HORROR dvd: 18pg
- Enter availability for a HORROR dvd (T for TRUE or F for FALSE):
- t
- Enter id number for a COMEDY dvd: 2
- Enter title for a COMEDY dvd: Scary Movie 2
- Enter duration for a COMEDY dvd in hours: 2
- Enter duration for a COMEDY dvd in minutes: 45
- Enter classification for a COMEDY dvd: PG
- Enter availability for a COMEDY dvd:
- Enter T for TRUE or enter F for FALSE: t
- Enter id number for a ACTION dvd: 3
- Enter title for a ACTION dvd: Leon the professional
- Enter duration for a ACTION dvd in hours: 2
- Enter duration for a ACTION dvd in minutes: 50
- Enter classification for a ACTION dvd: 18sg
- Enter availability for a ACTION dvd:
- Enter T for TRUE or enter F for FALSE: t
- ============================
- HORROR dvd details
- ============================
- ID number for HORROR dvd: 1Title for HORROR dvd: Scary MovieDuration for HORROR
- dvd in hours: 1Duration for HORROR dvd in minutes: 30Classification for HORROR d
- vd: 18pgAvailability for HORROR dvd: TRUE============================
- COMEDY dvd details
- ============================
- ID number for COMEDY dvd: 2Title for COMEDY dvd: Scary Movie 2Duration for COMED
- Y dvd in hours: 2Duration for COMEDY dvd in minutes: 45Classification for COMEDY
- dvd: PGAvailability for COMEDY dvd: TRUE============================
- ACTION dvd details
- ============================
- ID number for ACTION dvd: 3Title for ACTION dvd: Leon the professionalDuration f
- or ACTION dvd in hours: 2Duration for ACTION dvd in minutes: 50Classification fo
- r ACTION dvd: 18sgAvailability for ACTION dvd: TRUEPress any key to continue . .
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2008 06:38 PM
|
显示全部楼层
原帖由 cheng1986 于 19-10-2008 05:37 PM 发表 
改了readStr...#include
#include
void readStr(char *str){
int i;
char c;
for(i = 0; (c = getchar()) != '\n'; i++)
str = c;
str = '\0';
}
char readChar()
{
char c = ' ';
scanf("%c ...
prefect
佩服ing~
先拿走了。。。
等下再研究。。。
不明白再上来请教阁下
谢谢~ |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|