关于我申报文件的C2015错误

时间:2015-11-02 00:02:14

标签: c visual-studio file char

我的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;
}

1 个答案:

答案 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