&引用;“未端接字符串”;在Turbo C编译器上的字符串文字中包含引号时
我的程序中有这个,它显示了一个错误:Unterminated string&引用;“未端接字符串”;在Turbo C编译器上的字符串文字中包含引号时,c,string,character,turbo-c,C,String,Character,Turbo C,我的程序中有这个,它显示了一个错误:Unterminated string char Tok[63][63] = {"%%##","\""}; 是否有其他方法将双引号声明为字符串?这是Turbo C中的一个错误。我尝试过: char Tok[63][63] = { "%%##", "\"" }; int main (int argc, char **argv) { return 0; }; 在gcc上,在正常模式、C89模式和C99模式下使用-Wall,并且编译时没有错误(*)。我还手
char Tok[63][63] = {"%%##","\""};
是否有其他方法将双引号声明为字符串?这是Turbo C中的一个错误。我尝试过:
char Tok[63][63] = { "%%##", "\"" };
int
main (int argc, char **argv)
{
return 0;
};
在gcc上,在正常模式、C89模式和C99模式下使用-Wall
,并且编译时没有错误(*)。我还手动检查了字符串,它不可能是未终止的
我建议您在字符串文本中使用八进制,即
char Tok[63][63] = { "%%##", "\042" };
看看涡轮增压器C是否喜欢这样
(*)=NB
return 0
不是来自main()
的好做法-只是为了确保代码以尽可能简单的方式编译而没有警告您使用的是哪个平台和编译器?这解释了很多,因为这在clang和clang++3.3上都可以通过。如果你本可以选择一个更糟糕的C编译器,我很想看看如何使用。上一个Turbo C(2.0)是在四分之一世纪前发布的。这是一个项目的要求,所以我需要坚持使用编译器。用十六进制等价物(字节值)替换它-例如char(0x22)或者类似的。谢谢prabindh回答了我的问题。这比上面的答案更有效,因为你可以在数组中添加nex一个新元素而不会出错。除了双引号的八进制值是042。Oops-hex/octalthinko-fixed。