Compilerfehler C2001

Aktualisiert: November 2007

Fehlermeldung

Zeilenumbruch innerhalb einer Konstanten
newline in constant

Eine Zeichenfolge kann nur in einer zweiten Zeile fortgeführt werden, wenn Sie eine der folgenden Aktionen ausführen:

  • Sie beenden die erste Zeile mit einem umgekehrten Schrägstrich.

  • Sie schließen die Zeichenfolge in der ersten Zeile mit einem doppelten Anführungszeichen ab und beginnen die Zeichenfolge in der nächsten Zeile mit einem weiteren doppelten Anführungszeichen.

Es reicht nicht aus, die erste Zeile mit \n zu beenden.

Beispiel

Im folgenden Beispiel wird C2001 generiert:

// C2001.cpp
// C2001 expected
#include <stdio.h>

int main()
{
    printf_s("Hello,
             world");
    printf_s("Hello,\n
             world");
}

Leerzeichen hinter einem Zeilenfortsetzungszeichen am Anfang der nächsten Zeile werden in die Zeichenfolgenkonstante eingeschlossen. Durch keines der oben aufgeführten Beispiele wird eine Zeilenendemarke in die Zeichenfolgenkonstante eingebettet. Zeilenendemarken können, wie nachfolgend dargestellt, eingebettet werden:

// C2001b.cpp
#include <stdio.h>

int main()
{
    printf_s("Hello,\n\
             world");

    printf_s("Hello,\
             \nworld");

    printf_s("Hello,\n"
             "world");

    printf_s("Hello,"
             "\nworld");

    printf_s("Hello,"
             " world");

    printf_s("Hello,\
             world");
}