プロが教える店舗&オフィスのセキュリティ対策術

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);
}

A 回答 (2件)

>うまく配列に入れることが出来ません.


とは具体的にどうなるのでしょう? 何が期待とは異なる動作なのですか?

例文の段階ですでに上手く動かないのなら,単にC言語のロジックが誤っている,思い通りのロジックが書けていないだけでしょうし。

デバッガでプログラム動作中の変数の内容を監視し,どこでおかしくなるのか,どこで期待とは異なる動作となるのか,きっちり調査しましょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/05/15 10:47

こんにちは。

itohhといいます。

>うまく配列に入れることが出来ません.
このソースは、VBから受け取った後の処理ですよね?

>char getch[4000]="start1T\tpose ・・・・";
想定しているとおりにデータが入ってこないから困っているのですよね?
この部分を見てもデータの設定は判らないと思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!