【问题标题】:unexpected tokens following preprocessor directive - expected a newline预处理器指令后的意外标记 - 需要换行符
【发布时间】:2015-11-23 15:28:10
【问题描述】:

这是我的代码。

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

int main(void) {
int a, b, somma, massimo;
printf("Inserire il primo valore: A =");
scanf_s("%d", a);
printf("Inserire il secondo valore: B =");
scanf_s("%d", b);
if (b > 0) {    //1
    printf("B = %d e positivo", b);
} else {
    printf("B = %d e negativo", b);
}
if (a % 2 == 0){    //2
    printf("A = %d e pari", a);
} else {
    printf("A = %d e dispari", a);
}
somma = a + b;  //3
printf("A + B = %d", somma);
if (a < 0) {    //4
    a = -a;
}
if (b < 0) {
    b = -b;
}
massimo = a + b;
printf("Il numero più grande ottenibile con questi due numeri A, B e %d", massimo);
}

当我尝试编译时,它给了我这个警告:

1>c:\users\mario\documents\visual studio 2015\projects\controlla a e b\main.c:错误 C4335:检测到 Mac 文件格式:请将源文件转换为 DOS 或 UNIX 格式

1>c:\users\mario\documents\visual studio 2015\projects\controlla a e b\main.c(1):警告 C4067:预处理器指令后出现意外标记 - 需要换行符

【问题讨论】:

  • 确保文本编译器的输入字符集编码与用于存储文本文件的编码相同。海湾合作委员会。例如,默认情况下使用 UTF-8,因此您应该以相同的格式存储文本。对于VS,您必须检查自己。对于字符串文字,您必须确保正确配置目标编码(在 gcc 上默认为 UTF-8)。

标签: c++ c visual-studio-2012 warnings


【解决方案1】:

从您的文件中删除所有非ASCII 字符或将您的编辑器和编译器设置为接受 UTF-8。

【讨论】:

  • 不好的建议,因为 OP 不希望包含母语。
  • 尝试使用一个简单的 hello world 程序来检查您的工具链。但我 99% 确定您在某处仍有非 ASCII 字符。
  • 很可能是 ;
  • 万一其他人遇到这种情况,对我来说,这是包含末尾的额外引用。 #include "SomeFile.h""
  • 也遇到了这个问题,它是一个分号“;”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 2010-09-19
相关资源
最近更新 更多