VS2012调试时输出C标准输入输出流 100

我的C#项目要调用一个C写的DLL,但是我想在调试这个C#项目时(直接把C编写的动态链接库放到DEBUG目录下)可以在某个地方看到调用的C动态链接库的标准输入输出流... 我的C#项目要调用一个C写的DLL,但是我想在调试这个C#项目时(直接把C编写的动态链接库放到DEBUG目录下)可以在某个地方看到调用的C动态链接库的标准输入输出流 展开
 我来答
呆萌小咖77
2016-11-09 · TA获得超过797个赞
知道小有建树答主
回答量:813
采纳率:96%
帮助的人:149万
展开全部
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:

标准输入输出:

1. scanf, printf

int scanf(const char *format, arg_list)
scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);

它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount。

scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过语句
if( scanf("%s,%d",str,icount) != 2)
{
...
}
来判断用户输入是否正确.

例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Input Data:\n");
char str[64];
int num;
scanf("%s,%d", str, &num);

printf("%s,%d", str, num);
return 0;
}

Input Data:
nihao,1
nihao,1,2009091631

此处将","当做了与前面的nhao以及1一起的字符串。注意scanf时,是以空格,制表符以及回车作为变量之间的分割的。
因此在使用scanf时尽量采用这几个作为分割标记。而不要像scanf("%s,%d", str, &num);,它无法正确输入数据。

int printf(const char *format, arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdio.h头文件中定义了标准的输入和输出,分别是stdin,stdout。

arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中

格式化输入输出:
1. 格式控制
格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息。

格式说明:由"%"和格式字符组成,如%d,%f,%c,它的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的.
普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数

2. 输出列表
就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开。

一些特殊字符的输出:
单引号,双引号,和反斜杠的输出在前面加转义字符”\”,如:"\’", "\"", "\\"。
% 的输出用两个连在一起的%%,即 printf(“%%”);

常用的格式说明如下:
格式字符
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x 以十六进制形式输出无符号整数(不输出前缀0x)
u 以十进制形式输出无符号整数
f 以小数形式输出单精度实数
lf 以小数形式输出双精度实数
e 以指数形式输出单、双精度实数
g 以%f,%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串

特殊:
对64位整数的输入输出,在POJ上的C++环境下(即VC),64位整数是:
__int64 (注意int前面是两个下划线),输入输出格式为”%I64d”.

在G++环境下(即Dev C++) 64位整数是
long long 输入输出格式为”%lld”.

输出宽度
  用十进制整数来表示输出的最少位数。注意若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

可以在"%"和字母之间插进数字表示最大宽度。

%9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
匿名用户
2016-11-09
展开全部
只用动态库不行,把动态库的源代码项目和C#的项目合并到一个工程里面来。C#项目引用DLL项目的产物。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式