Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 打印标题定义的大小字符串_C - Fatal编程技术网

C 打印标题定义的大小字符串

C 打印标题定义的大小字符串,c,C,我试图在文件中打印一个固定大小的字符串。大概是这样的: #define SIZE 30 main() { FILE *fp = fopen("myfile.txt","w+"); char s[10]; sprintf(s, "my text"); fprintf(fp, "%SIZEs", s); fclose(fp); } 但是我不断地犯错误。。帮助?您应该定义格式字符串,如下所示: fprintf(fp, "%*s", SIZE, s); // Right

我试图在文件中打印一个固定大小的字符串。大概是这样的:

#define SIZE 30
main()
{
   FILE *fp = fopen("myfile.txt","w+");
   char s[10];
   sprintf(s, "my text");
   fprintf(fp, "%SIZEs", s);
   fclose(fp);
}

但是我不断地犯错误。。帮助?

您应该定义格式字符串,如下所示:

fprintf(fp, "%*s", SIZE, s);  // Right aligned string
fprintf(fp, "%-*s", SIZE, s); // Left aligned string
printf
手册页:

精度
可以编写
“*”
来代替十进制数字字符串,以指定精度在下一个参数中给定


当然,调试器会有所帮助。阅读编译器错误(如果有)也会有帮助。实际上,没有编译错误,但它不会在文件上打印任何内容。这就解决了,非常感谢。^^^@Adao:没问题。当你可以的时候一定要记得。更好的是:
fprintf(fp,“%”大小“s”,s)以避免在长度为编译时常量的情况下浪费CPU周期。@TimCooper Right,已修复。