したがって、私の問題は単純です。ファイル内の単語を分離し、それらの単語を解析し、それらの単語に対して特別な考えを作成する関数を作成したいのですが、トークンを分離しようとすると、strcat にエラーがあります。
コードを見てください:
#include <stdio.h>
#include <string>
#include <Windows.h>
using namespace std;
bool compile(FILE *fp)
{
char c;
char token[256];
bool _return = false;
while ((c = getc(fp)) != EOF)
{
if(isalpha(c))
{
// The error is here
strcat(token, (char*)c);
printf("%c\n", c);
}
else
{
printf("----> %c\n", c);
}
}
printf("%s\n", token);
return _return;
}
int main()
{
char *filename = "test.in";
FILE *fp = fopen(filename, "rb");
if(!fp)
{
return 1;
}
if(!compile(fp))
{
printf("ERROR...\n");
}
fclose(fp);
}
コードは正常にビルドされますが、デバッグすると、デバッガーは strcat.asm ファイルに移動します:(だから、私のエラーはどこですか、助けてくれてありがとう。(:
-0-0-0-0-0-0-0-0-0-> edit そして、strcat を次のように変更すると:
strcat(token, &c)
デバッガーから次のエラーが表示されます。
APP.exe の 0x20E801F2 で未処理の例外: 0xC0000005: アクセス違反 (パラメーター: 0x00000008)。