我在这个程序上有一个错误

本文关键字:有一个 错误 程序上 | 更新日期: 2023-09-27 18:16:16

在"using System;", "using System. "namespace BinaryFileApplication"answers"namespace BinaryFileApplication"。所以我真的不知道怎么处理它们才能让C程序识别它们。

using System;
using System.IO;
namespace BinaryFileApplication
{
class Program
{
    static void Main(string[] args)
    {
        BinaryWriter bw;
        BinaryReader br;
        int i = 25;
        double d = 3.14157;
        bool b = true;
        string s = "I am happy";
        //create the file
        try
        {
            bw = new BinaryWriter(new FileStream("mydata", FileMode.Create));
        }
        catch (IOException e)
        {
            Console.WriteLine(e.Message + "'n Cannot create file.");
            return;
        }
        //writing into the file
        try
        {
            bw.Write(i);
            bw.Write(d);
            bw.Write(b);
            bw.Write(s);
        }
        catch (IOException e)
        {
            Console.WriteLine(e.Message + "'n Cannot write to file.");
            return;
        }
        bw.Close();
        //reading from the file
        try
        {
            br = new BinaryReader(new FileStream("mydata", FileMode.Open));
        }
        catch (IOException e)
        {
            Console.WriteLine(e.Message + "'n Cannot open file.");
            return;
        }
        try
        {
            i = br.ReadInt32();
            Console.WriteLine("Integer data: {0}", i);
            d = br.ReadDouble();
            Console.WriteLine("Double data: {0}", d);
            b = br.ReadBoolean();
            Console.WriteLine("Boolean data: {0}", b);
            s = br.ReadString();
            Console.WriteLine("String data: {0}", s);
        }
        catch (IOException e)
        {
            Console.WriteLine(e.Message + "'n Cannot read from file.");
            return;
        }
        br.Close();
        Console.ReadKey();
    }
}

我在这个程序上有一个错误

你不能。这看起来像。net代码。为什么期望"C"编译器理解它?

这段代码不是C -它是c#。您必须使用 c# 编译器构建它(在Visual Studio中,或使用Mono,或类似的东西)。

如果你真的想把它构建成C,你必须把它转换成合法的C代码。与之相近的是:

#include <stdio.h>
int main( int argc, char **argv )
{
  FILE *bw, *br;
  int i = 25;
  double d = 3.14157;
  _Bool b = true;
  char s[] = "I am happy";
  bw = fopen( "mydata", "wb" );
  if ( bw )
  {
    if ( fwrite( &i, sizeof i, 1, bw ) != sizeof i )
      // error writing i;
    if ( fwrite( &d, sizeof d, 1, bw ) != sizeof d )
      // error writing d
    if ( fwrite( &b, sizeof b, 1, bw ) != sizeof b )
      // error writing b
    if ( fwrite( s, sizeof s, 1, bw ) != sizeof s ) // no & operator on s
      // error writing s
    fclose( bw );
  }
  // remainder left as exercise
}

C没有命名空间1,它没有类,它没有BinaryReaderBinaryWriter,它不做结构化异常处理等。与c#完全不同。


<一口>

    也就是说,它没有用户可定义的命名空间。有4 .内置名称空间:标签名称、结构体和联合标记名称、结构体和联合成员名称,以及其他所有内容。