当我注意到这段代码时试图找出函数中的堆栈损坏错误:
fprintf( fp, "\n%s %3c %12s %2c %12s %2c %12s %2c %12s %2c"
"%12s %2c %12s",
xys_field[3], x,
xyzFunc(val1, 0), x,
xyzFunc(val2, 0), x,
xyzFunc(val3, 0), x,
xyzFunc(val4, 0), x,
xyzFunc(val5, 0), x,
xyzFunc(val6,0) );
我要问的是关于这一行 "\n%s %3c %12s %2c %12s %2c %12s %2c %12s %2c""%12s %2c %12s"
,我什至不明白这是如何编译的,因为我从未见过两种格式像这样相互跟随。感谢您的帮助。
最佳答案
这不是两种格式——请注意没有逗号,或者除了空格之外的任何分隔它们的东西。这是用于延续长字符串的 C 语法。在 C 中,这些是等价的:
"abc" "def"
"abcdef"
请注意,这仅适用于字符串文字;你不能连接字符串变量。这是语法错误:
string1 string2
关于c - 奇怪的 C fprintf 格式符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585712/