【问题标题】:error c2059: syntax error: constant in c while reading from a file错误 c2059:语法错误:从文件读取时 c 中的常量
【发布时间】:2014-12-11 10:42:46
【问题描述】:

我想读取并打印文本文件的前两行。 问题是,我收到错误:error c2059: syntax error: constant,它指向我的文本文件中的第一行。 有什么想法吗?

文件.txt:

5
5
3
1 1 1 0 0
0 1 0 0 1
0 1 0 1 0
1 0 1 0 1
1 1 0 1 1

代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    int line, col, gen;
    fp = fopen("file.txt", "rt");
    fscanf(fp, "%d\n,%d\n", &line, &col);
    printf("line: %d,  col: %d\n", line, col);
    fclose(fp);
    return 0;
}

【问题讨论】:

  • 您是否要编译 file.txt?请告诉我们您是如何编译这些文件的。
  • ctrl F5.我做错了吗?我只有一天的视觉工作室......
  • 但是你想编译file.txt吗? VS 可能正在尝试编译所有活动文件,其中不应该编译 file.txt
  • 确实出了点问题。显然 Visual Studio 正在编译您的文本文件。文本文件不是用来编译的,它们不包含代码。
  • 看看at this answer,我想它可能会对你有所帮助。显然你需要告诉 Visual Studio 它是一个“内容”文件。

标签: c printf fopen


【解决方案1】:

Visual Studio 将编译项目中的每个文件。这包括file.txt,如果您已将其作为文件添加到您的项目中。

为防止 Visual Studio 编译此文件,您需要告诉 Visual Studio 这是一个“内容”文件。看看 File PropertiesBuild Action Property

Content - 文件未编译,但包含在 Content 输出组中。例如,此设置是 .htm 或其他类型的 Web 文件的默认值。

【讨论】:

  • 我对VS没有太多经验,如果你喜欢,请改进这个答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
相关资源
最近更新 更多