从终端输入到C文件

时间:2014-07-27 18:13:45

标签: c

我想从终端获取用户输入,然后从终端获取该输入并写入新文件。 在这里我使用usage[]来显示我的C程序的语法 文件如下: http://pastee.co/VP10OH

#include "common.h"

/* system headers */
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "bio.h"

/* interface headers */
#include "vmath.h"
#include "nmg.h"
#include "rtgeom.h"
#include "bu.h"
#include "raytrace.h"
#include "wdb.h"

static const char usage[] = "Usage: %s Camera x1 y1 z1 look_at x2 y2 z2 Light x3 y3 z3 -o output_file brlcad_db.g object(s)\n";
int main( int argc, char *argv[] )
{
  bu_setprogname(argv[0]);
  int c;

  while ((c = getopt(argc, argv, "ClL")) != -1) 
   {
    switch (c) 
    {
             case "C":           
                 printf("camera{<%s", argv[1], ",", argv[2], ",", argv[3], ">}");
        break;
         case "l":           
                 printf("camera{%s", argv[4], ",", argv[5], ",", argv[6], "}");
        break;
         case "L":           
         printf("light {%s", argv[7], ",", argv[8], ",", argv[9], "}");
                 break;
             case 'o':           /* Output file name */
                 /* grab output file name */
                 break;

             default:
                 bu_exit(1, usage, argv[0]);
                 break;
         }
     }
}

但是我无法从用户那里获取输入(文件中缺少某些东西,我也很困惑,在哪里给出打开文件命令?) 并将其写入一个新文件。 运行make file_name后,它会出现以下错误:

http://ctrlv.in/363829

还请解释这意味着什么以及如何调试它:

error: ISO C90 forbids mixed declarations and code [-Werror=pedantic]

1 个答案:

答案 0 :(得分:0)

您可能正在使用GCC编译器。默认情况下,gcc正在接受C90标准代码。

您希望使用

进行编译
gcc -Wall -g -std=c99 

要求GCC发出几乎所有警告,调试信息并接受C99语言标准。

BTW,您可能对getline(3)函数感兴趣,您可以考虑(如果在Linux上编码)使用GNU readlinencurses库。

如果使用GNU make,请考虑修改Makefile(可能是CFLAGS=行)或重新生成它(例如,使用./configure为项目传递更好的参数autoconf ,或以更好的方式再次运行cmake等等......)