FIX: printf Does Not Recognize "\n\r" when Using Conversion (117385)
The information in this article applies to:
- The C Run-Time (CRT), when used with:
This article was previously published under Q117385 SYMPTOMS
If an explicit type-conversion syntax is used for the return value of
printf(), printf() does not recognize the escape sequence \n\r in its
format string.
The following macro prints "<string x>\n\r":
#define PRINT(x) void( printf("%s\n\r", x ) )
RESOLUTION
To correct the error, use one of the following workarounds:
- Use ASCII values for the line feed and carriage return. For example:
#define PRINT(x) void( printf("%s%c%c",x,10,13 ) )
-or-
- Use explicit typecasting instead. For example:
#define PRINT(x) (void)( printf("%s\n\r",x ) )
-or-
- Program without the conversion or casting if possible. For example:
#define PRINT(x) printf("%s\n\r", x )
STATUS
Microsoft has confirmed this to be a bug in the products listed at the
beginning of this article. This problem was corrected in Visual C++ 32-bit
Edition, version 2.0.
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbbug kbCRT kbfix KB117385 |
---|
|