C言語で
ABC 123 987
といった感じで文字型と整数型を分けて入力させたいのですが、なかなかうまくできません。
c
1#include <stdio.h> 2#include <string.h> 3 4int main(void) 5{ 6 char array[20]; 7 char arr[10]; 8 int num1; 9 int num2; 10 11 scanf_s("%s", array,sizeof(array)); 12 13//arrの後にsizeof(arr)が必要なのは分かりました 14 sscanf_s(array,"%s %d %d",arr,sizeof(arr),&num1,&num2); 15 16 printf("&s %d %d",arr,num1,num2); 17 18 return 0; 19} 20
改行して入力させるのは簡単なのですが、空白で入力させるのができなくて困っています。
どなたか教えていただけないでしょうか?
分解する文字列 "ABC 123 987" が array[20] に格納された後、sscanf_s() を呼び出す、のでしょうか?
入力と同時にarray[20]に格納して、arrとnum1,num2に分解させたいということです。
いまいちsscanf_s()の使い方を把握していないのですが、こういう解釈で大丈夫ですかね??
説明不足で申し訳ないです。
では、貴方の希望・説明を問題文に反映させてください。
修正した問題文に「入力と同時にarray[20]に格納して」に相当する説明が見当たらない。特に「同時に」とは、何と何が同時なのか、わかりやすい説明が欲しい。
とてもお恥ずかしい話ですが、sscanf関数が入力と分解同時にできる関数だと勘違いしていました。
ただ、修正した分でも上手く動作しません。よければ教えていただきたいです。
素朴な疑問:なぜscanf_s()でなきゃいけないんでしょう?
scanf()あるいは、fgets()+sscanf()で解決できると思いますが?
回答4件
あなたの回答
tips
プレビュー