[英]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.