• ベストアンサー

長い文字列を配列に入れるには?

VBから長い文字列を送って,c言語で受け取りたいのですが,うまく配列に入れることが出来ません.文字列サイズは最低でも4000バイト必要です. #include <stdio.h> #include <stdlib.h> #include <string.h> //VBから送られてくるデータ char getch[4000]="start1T\tpose 0 0 -5 0 -5 0 -5 0 -5 0 0 0 0 0\ ..省略.. 25\t\n"; void main(void){ char *token; char seps[]="\t\n"; FILE *pose; pose=fopen("pose.txt","a"); if((token=strtok(getch,"\t"))==NULL){ printf("Error File1\n"); exit(1); } printf("%s\n",token); while(strcmp(token,"\n")!=0){ token=strtok(NULL,"\t"); fputs(token,pose); fputs("\n",pose); printf("%s\n",token); } fclose(pose); }

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

>うまく配列に入れることが出来ません. とは具体的にどうなるのでしょう? 何が期待とは異なる動作なのですか? 例文の段階ですでに上手く動かないのなら,単にC言語のロジックが誤っている,思い通りのロジックが書けていないだけでしょうし。 デバッガでプログラム動作中の変数の内容を監視し,どこでおかしくなるのか,どこで期待とは異なる動作となるのか,きっちり調査しましょう。

noname#86965
質問者

お礼

デバックした結果strtokでトークンに区切るあたりでエラーが出ていたようです.ご迷惑をお掛けしました.

その他の回答 (1)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 >うまく配列に入れることが出来ません. このソースは、VBから受け取った後の処理ですよね? >char getch[4000]="start1T\tpose ・・・・"; 想定しているとおりにデータが入ってこないから困っているのですよね? この部分を見てもデータの設定は判らないと思いますよ。

関連するQ&A