簡體   English   中英

帶整數和字符的字符串-C

[英]string with ints and chars - C

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

int main()
{
   char first[10], last[10], id[10];
   int stdnum;
   FILE *fptr;
   fptr = fopen("C:\\c\\program.txt","w");

   if(fptr == NULL)
   {
      printf("Error!");   
      exit(1);             
   }

   else 
   {

       //first name
       printf("Enter name: ");
       scanf("%s", first);
       fprintf(fptr,"%s ",first);


       //last name
       printf("Enter last name: ");
       scanf("%s ", last);
       fprintf(fptr,"%s", last);


       //id
       printf("Enter id: ");
       scanf("%s %d", id, &stdnum);


       fprintf(fptr,"%s\n", id);
       fprintf(fptr,"%d\n", stdnum);

       fclose(fptr);

       return 0;
    }
}

我正在編寫一個程序,要求用戶提供姓名,姓氏和學生編號。 學生編號格式為小寫字母,后跟8位數字。 當我運行此代碼時,我可以輸入名字和姓氏。 輸入姓氏並在cygwin中按Enter鍵后,控制台會給我一個空行,我必須在其中至少鍵入一個字符或數字,以便顯示“輸入學生ID”。

Enter name: bob
Enter last name: jones




1
Enter id: a00998877

那么文件輸出是這樣的:

“鮑勃·瓊斯11”

我希望輸出是這樣的:

“鮑勃·瓊斯a00998877”

我究竟做錯了什么?

為什么在此行中掃描兩個輸入:

scanf("%s %d", id, &stdnum);

id是一個char數組,將能夠保存字母數字輸入。 您可以刪除使用stdnum

scanf("%s", id);

我有一個與stdin-stdout例子

char first[10], last[10], id;

id是單個字符,不需要數組。

scanf("%s", last);

s后刪除空間

scanf(" %c%d", %id, &stdnum)

id從字符串更改為char

fprintf(fptr,"%c\n", id)

此處相同,更改為char

暫無
暫無

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

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