我的Visual Studio 2013给了我一个C2015错误:
字符常量包含两个以上的字符。限制是 标准字符常量的一个字符和两个字符 长字符常量。
关于:
spMyOutput = fopen("C:\\MyOutput.txt", "w");
基于对该错误的一些搜索,我不确定我做错了什么,因为spMyOutput
未被声明为char变量而是FILE
。
可能还有其他一些我做错了,但我不确定它可能是什么。
#include<stdio.h>
int nine();
void txtdoc(int count);
void main()
{
int count;
count = nine();
txtdoc(count);
system("pause");
return;
}
int nine()
{
int loopcount = 9;
int i;
while (loopcount >= 0)
{
for (i = 1; i <= loopcount; i++)
{
printf("%d", i);
}
loopcount--;
printf("\n");
}
return count;
}
void txtdoc(int count)
{
FILE* spMyOutput;
int close;
spMyOutput = fopen("C:\\MyOutput.txt", "w");
if (!spMyOutput)
{
printf("Could not open file.\a\n");
}
fprintf(spMyOutput, "%d\n", count);
close = fclose(spMyOutput);
if (close == EOF)
{
printf("Could not close file.\a\n");
}
return;
}
答案 0 :(得分:0)
在纠正编译错误并应用注释后,您的代码现在可以干净地编译。
注意:pause
是一个Windows批处理文件命令。更好的选择是:getchar()
#include <stdio.h>
#include <stdlib.h>
int nine( void );
void txtdoc(int count);
int main()
{
int count;
count = nine();
txtdoc(count);
getchar();
return 0;
}
int nine()
{
int loopcount = 9;
int i;
while (loopcount >= 0)
{
for (i = 1; i <= loopcount; i++)
{
printf("%d", i);
}
loopcount--;
printf("\n");
}
return loopcount;
}
void txtdoc(int count)
{
FILE* spMyOutput;
spMyOutput = fopen("C:\\MyOutput.txt", "w");
if (!spMyOutput)
{
perror("Could not open file.\a\n");
exit( EXIT_FAILURE );
}
fprintf(spMyOutput, "%d\n", count);
fclose(spMyOutput);
}
这里是运行上面代码的结果。在退出之前,代码将暂停用户的最终击键。
123456789
12345678
1234567
123456
12345
1234
123
12
1