PRB: C2001: Newline in Constant for a String on Multiple Lines (40160)
The information in this article applies to:
- Microsoft C for MS-DOS 6.0
- Microsoft C for MS-DOS 6.0a
- Microsoft C for MS-DOS 6.0ax
- Microsoft C for OS/2 6.0
- Microsoft C for OS/2 6.0a
- Microsoft C/C++ for MS-DOS 7.0
- Microsoft Visual C++ 1.0
- Microsoft Visual C++ 1.51
- Microsoft Visual C++, 32-bit Professional Edition 2.0
- Microsoft Visual C++, 32-bit Professional Edition 2.1
This article was previously published under Q40160 SYMPTOMS
If program contains a string literal that is incorrectly split over
multiple lines the following error will occur:
error C 2001: newline in constant
Several other errors may be caused by this also. This sample will
also give errors C2065, C2121, C2143, and C2198 as a result of the
newline errors.
CAUSE
This is a common programming mistake. Special considerations must
be taken to split a constant string over several lines.
RESOLUTION
The best method is to change the format string, as in the following
example (this works because strings separated only by spaces, tabs,
and/or newlines are concatenated as specified by the ANSI
standard):
printf("\n %s"
" %s"
" %s",
"this", "is", "it");
The older and less-preferred method is to use continuation lines by
typing a backslash followed by a carriage return at the end of a
line, as in the following example:
printf("\n %s\
%s\
%s",
"this", "is", "it");
This is not as good as the previous example because the spaces at
the beginning of the continuation line become part of the string,
unlike the first example.
Modification Type: | Minor | Last Reviewed: | 7/5/2005 |
---|
Keywords: | kbCompiler kbprb KB40160 |
---|
|