• 締切済み

gets

struct phone_type { char name[100]; int areacode; char number[100]; } phone[MAX]; char temp; . . . gets(temp); phone[i].areacode = atoi(temp); tempに0000と入力するとareacodeには0しか入りません。 なぜでしょうか?

みんなの回答

  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.4

ほかの方の書かれていますが、数値として扱う為にatoiしてint型にしていますよね。 なので(数値なので)0です。0000でも電卓では0ですよね! 0000にしたい理由が別に有るのでしょうか? そうであればint型など不要で文字列(CHAR)として扱うしかありませんが

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>0000を入れたい char areacode[6]; とでもしましょう。 表示する時に0を付けたいだけなら intのままでも printf("%04d",areacode); とでもすればいいです。

  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.2

tempは文字列ですが、areacodeはintなので数字です。 ましてareacodeに入れるときにatoiしているので文字列→int変換した結果が入るからです。 areacodeに0000を入れたいって事ですか?

morumomo
質問者

補足

0000を入れたいてことです。すいません。

  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

areacodeの型はintですよね だから0が入るのです atoiで[文字→数値変換]してるじゃないですか intをわかってます??? というくらいの質問なんですけど

関連するQ&A