c编程中的cin和cout

时间:2015-08-19 15:38:48

标签: c++ c

我的代码是用c编写的。但是,我通过将头文件更改为c ++来转换代码,程序运行正常。现在我的问题是:我想要cin和cout在c程序中工作。我已经包含以下库

mydfnew$uid

并且为了使cin和cout工作,我在c ++中使用了iostream库,这在c中不起作用。请告诉我我可以使用的任何库,或者如果我可以将代码转换为c编程工作。

2 个答案:

答案 0 :(得分:2)

cincout是流,但在C中不存在。您可以在C中使用printf()scanf()

一般来说,在C ++中运行C代码将起作用,因为C ++基于C,但是另一种方式可能会有问题,因为C语言中有很多C中没有的功能。

答案 1 :(得分:1)

  

我可以使用或可能的任何库,如果我可以转换代码工作   c编程

我认为不存在这样的库或代码转换工具。另外,我相信你可能不想要这样的事情。

恕我直言,C和C ++是两种语言,因此您需要根据代码类型将编译单元分开:

1a)(大多数情况下)C函数只能在C编译单元中编译。

1b)C编译单元无法编译或理解C ++。

2a)C ++函数或方法只能在C ++编译单元中编译。

2b)C ++编译单元 CAN 产生C链接功能,但正如其他答案中所述,C和C ++不一定为相同的c-style&生成相同的代码#39;功能

问题(上面的1和2)有时被称为(或曾经被称为?)名称修改,特别是链接器用于连接不同编译单元代码的内容。 C ++使用名称修改,C不使用。

3)从C ++代码(在C ++编译单元中)调用C函数(在C编译单元中定义和编译)是微不足道的......使用' extern" C" &#39 ;.外部" C"导致C ++编译器使用未编码的链接名称生成函数调用,该名称是C代码可以链接和调用的名称。

4)从C编译单元中的代码调用C ++函数(在C ++编译单元中定义)相当容易(尽管可能并不简单)。

但是,直接'方法是在C ++编译单元中提供一个C语言函数接口,声明请求不要破坏名称。

4a)在C ++代码中,用extern" C"声明并实现一个C函数(即foo())。宣言。此函数虽然是c风格,但能够访问或执行所需的C ++函数。

4b)extern" C" foo()可以从C编译单元的代码中调用(注意:没有extern" C")。

4c)链接器将连接未编码的名称foo()...从而支持C ++函数foo()的C代码调用。

5)从C函数调用类方法更具挑战性,因为C ++类方法通常需要一个特定的实例来通过它来寻址对象。而C代码对类实例知之甚少。

有足够的碎片,就可以完成。例如,我使用静态类方法将中断(总是C或assy代码)连接到C ++对象实例。但是没有令人信服的理由(比如中断处理),我选择使用C ++编写。