-1

所以我有一个函数声明为:

void writeFile (unsigned char *fileName, unsigned char *data)

如果我这样调用函数:

writeFile("f.txt", "Test1");

很好。

如果我像这样打第二个电话:

writeFile("s.txt", "Test2\nline");

文件名很好,但数据已损坏(前 5 个字节被弄乱了)。

如果我像这样打第三个电话:

writeFile("f.txt", "Test3\r\nline");

文件名已损坏,并且数据的前 5 个字节搞砸了。

到底是怎么回事?

4

1 回答 1

0

我相信您的问题与使用无符号字符有关,当我将其放入我的代码中时,它会在编译时抱怨它。这可能与 unsigned char 无法使用转义字符有关\n,但我不能确定。

IntelliSense: argument of type "const char *" is incompatible with parameter of type "unsigned char *"

是我得到的编译错误。

当我将其更改为仅作为常规char *参数时,它运行良好。

于 2013-08-23T16:34:35.563 回答