程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言 SCANF 求解

C語言 SCANF 求解

編輯:C語言問答

C語言 SCANF 求解

#include <stdio.h>
#include <stdlib.h>


void main(){

  struct student{
  char name[20];
  int age;
  char sex;
  float lenght;
 }stu[5];

   FILE *fp;

 if((fp = fopen("e:\\aaa.dat", "rb"))==NULL){
  printf("file open error ! ");
  exit(0);
 }

 scanf("%s", &stu[0].name);
 scanf("%d", &stu[0].age);
 scanf("%c", &stu[0].sex);
 scanf("%f", &stu[0].lenght);
 fwrite(&stu[0],sizeof(struct student),1,fp);

 //printf("%s\t %d \n", stu->name,stu->age);
}

 

為什麼只能接收三個呀,最後一個沒有的,刪了一個的話只能接收二個,少了一個等待輸入

最佳回答:

你把輸入數據那一部分修改成下面的樣子就可以了



    scanf(" %s", &stu[0].name);
    scanf("%d", &stu[0].age);
    scanf(" %c", &stu[0].sex);
    scanf("%f", &stu[0].lenght);
補充:
注意 name 和 sex 的輸入方式。   %s 和 %c之前都有一個空格!!!
追問:

可以等待輸入了,可又出問題了

 

還有那前面的空格有什麼作用呀!謝謝了

回答:


我這裡都沒有問題。
你把工程清除下,然後全部重新編譯試試。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved