使用 stdprn 时出现 C 编译错误

标签 c windows compilation windows-8 visual-studio-2012

我的操作系统是:Windows 8

IDE:VS 2012

这是我的 C 程序。 (摘自书本)

/* print_it.c—This program prints a listing with line numbers! */
#include <stdlib.h>
#include <stdio.h>

void do_heading(char *filename);

int line = 0, page = 0;

int main( int argv, char *argc[] )
{
  char buffer[256];
  FILE *fp;

  if( argv < 2 ) 
  {
    fprintf(stderr, "\nProper Usage is: " );
    fprintf(stderr, "\n\nprint_it filename.ext\n" );
    return(1);
  }

  if (( fp = fopen( argc[1], "r" )) == NULL )
  {
    fprintf( stderr, "Error opening file, %s!", argc[1]);
    return(1);
  }

  page = 0;
  line = 1;
  do_heading( argc[1]);

  while( fgets( buffer, 256, fp ) != NULL )
  {
    if( line % 55 == 0 ) 
      do_heading( argc[1] );
    fprintf( stdprn, "%4d:\t%s", line++, buffer );
  }

  fprintf( stdprn, "\f" );
  fclose(fp);
  return 0;
}

void do_heading( char *filename )
{
  page++;

  if ( page > 1)
    fprintf( stdprn, "\f" );

  fprintf( stdprn, "Page: %d, %s\n\n", page, filename );
}

正在尝试编译。打开开发人员命令提示符,然后输入

cl print_it.c

得到这个屏幕(一堆错误和警告)

http://content.screencast.com/users/TT13/folders/Jing/media/ff48bfe2-7e83-4d93-b1c5-db7ab7e553b8/2012-08-21_1458.png

我错过了什么?

最佳答案

stdprn 不是标准 C 的一部分。stdprn 是 DOS 编译器提供的流。也许应该避免。

您可以尝试关闭 ANSI 兼容性以使stdprn 正常工作。 ( Reference )

关于使用 stdprn 时出现 C 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052484/

相关文章:

windows - 如何判断任务栏是否使用小图标

c - 可能最终出现在共享库中的所有内容是否总是需要使用 -fPIC 进行编译?

python - 在c中执行python脚本并获取脚本pid

c - Firesheep - 安全公共(public)网络

c - 如何从编译后的代码中获取c源代码

c++ - g++ 4.7 将运算符 ""评估为宏扩展的兄弟

c - 为什么编译器在初始化一个volatile数组的时候会生成这样的代码呢?

c - 如何编写监视文本文件中新数据的程序

windows - 将文本文件复制到 USB 斑马打印机

windows - 为什么双击批处理文件找不到要删除的注册表值?