当前位置:首页 » 编程语言 » c语言带入

c语言带入

发布时间: 2022-02-23 08:36:02

c语言中~的用法

是条件运算符,相当于 if() else 结构。

⑵ 在C语言中如何输入带下标的字符

不支持带下标的字符,可以用其他方式代替,例如x下标2写成x_2

⑶ create函数C语言怎么带入

你说的如果是自定义函数。就先写出来,比如

#include<stdio.h>
voidcreate()
{
//这里写函数代码
}
intmain()
{
create();//在主函数里进行调用
}

⑷ C语言如何用scanf和printf输入输出汉字,最好带程序例子,在线等,急

#include<stdio.h>
intmain(void)
{
chars[100];
printf("请输入:");
gets(s);
puts(s);
}

⑸ C语言能读取一个文件里面的方程并将数据带入进去求出结果吗

功能上完全可以实现,但是没有现成的函数供你调用,你要自己实现这个功能.

⑹ c语言怎么把一个程序中的结果带入到下面的程序继续运行

system函数可以运行系统命令,用它可以简单实现,也就是用另一个程序的main函数的形参来接受这个结果,但是这样返回值是带不回来的,而且在运行上看起来像是只运行了一个程序;应为程序1在运行的过程中用system调用了程序2,程序1将等待system(程序2)执行完毕,再回到程序1继续执行。这是我的推测,我没有测试过。
如果你是在一个程序的不同函数间传递结果,可以传递参数,或者建立全局变量(这个变量一般建立在所有函数之前,他不单独属于任何一个函数体内,而是为这个程序文件中的所有函数可直接访问和修改)。

⑺ c语言如何传递字符串

c语言函数中传递字符串,可以分为两种情况,一种是将字符串作为参数,一种是将字符串作为返回值 ,当使用字符串作为返回值时,切记不要传递局部字符数组。下面是一个示例代码:


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidf(char*str){//字符串作参数
printf(str);
}
char*r(){//字符串作返回值
//使用动态分配内存,不要使用局部变量比如
//charbuf[80];因为局部变量在函数结束时,栈区变量已被回收
char*str=(char*)malloc(256*sizeof(char));
if(str==0){printf("can'tallocmem ");return0;}
elsememset(str,0x00,sizeof(char)*256);
returnstr;//
}
intmain()
{
char*pstr=r();
if(pstr!=0)strcpy(pstr,"helloworld ");
f(pstr);
free(pstr);
return0;
}

⑻ c语言如何套入数据

如今Excel是越来越重要了,在我们自己开发的程序中不免要和Excel打交道了。利用Automation技术,我们可以在不去了解
数据库的情况下玩转Excel,而且你会发现一切竟如此轻松!
好了,咱们开始吧,我不喜欢用长篇累牍的代码来故弄玄虚,所以下面的代码都是切中要害的片段,总体上是个连贯的过程,
包括启动Excel,读取数据,写入数据,以及最后的关闭Excel,其中还包括了很多人感兴趣的合并单元格的处理。
特别说明以下代码需要MFC的支持,而且工程中还要包含EXCEL2000的定义文件:EXCEL9.H,EXCEL9.CPP

*****************************************************************************************************************

//*****
//变量定义
_Application app;
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
Range iCell;
LPDISPATCH lpDisp;
COleVariant vResult;
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

//*****
//初始化COM的动态连接库
if(!AfxOleInit())
{
AfxMessageBox("无法初始化COM的动态连接库!");
return ;
}

//*****
//创建Excel 2000服务器(启动Excel)
if(!app.CreateDispatch("Excel.Application"))
{
AfxMessageBox("无法启动Excel服务器!");
return;
}

app.SetVisible(TRUE); //使Excel可见
app.SetUserControl(TRUE); //允许其它用户控制Excel

//*****
//打开c:\\1.xls
books.AttachDispatch(app.GetWorkbooks());
lpDisp = books.Open("C:\\\\1.xls",
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional );

//*****
//得到Workbook
book.AttachDispatch(lpDisp);

//*****
//得到Worksheets
sheets.AttachDispatch(book.GetWorksheets());

//*****
//得到当前活跃sheet
//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待
lpDisp=book.GetActiveSheet();
sheet.AttachDispatch(lpDisp);

//*****
//读取已经使用区域的信息,包括已经使用的行数、列数、起始行、起始列
Range usedRange;
usedRange.AttachDispatch(sheet.GetUsedRange());
range.AttachDispatch(usedRange.GetRows());
long iRowNum=range.GetCount(); //已经使用的行数

range.AttachDispatch(usedRange.GetColumns());
long iColNum=range.GetCount(); //已经使用的列数

long iStartRow=usedRange.GetRow(); //已使用区域的起始行,从1开始
long iStartCol=usedRange.GetColumn(); //已使用区域的起始列,从1开始

//*****
//读取第一个单元格的值
range.AttachDispatch(sheet.GetCells());
range.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal );
COleVariant vResult =range.GetValue();
CString str;
if(vResult.vt == VT_BSTR) //字符串
{
str=vResult.bstrVal;
}
else if (vResult.vt==VT_R8) //8字节的数字
{
str.Format("%f",vResult.dblVal);
}
else if(vResult.vt==VT_DATE) //时间格式
{
SYSTEMTIME st;
VariantTimeToSystemTime(&vResult.date, &st);
}
else if(vResult.vt==VT_EMPTY) //单元格空的
{
str="";
}

//*****
//读取第一个单元格的对齐方式,数据类型:VT_I4
//读取水平对齐方式
range.AttachDispatch(sheet.GetCells());
iCell.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal);
vResult.lVal=0;
vResult=iCell.GetHorizontalAlignment();
if(vResult.lVal!=0)
{
switch (vResult.lVal)
{
case 1: //默认
break;
case -4108: //居中
break;
case -4131 : //靠左
break;
case -4152 : //靠右
break;
}

}

//垂直对齐方式
iCell.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal);
vResult.lVal=0;
vResult=iCell.GetVerticalAlignment();
if(vResult.lVal!=0)
{
switch (vResult.lVal)
{
case -4160 : //靠上
break;
case -4108 : //居中
break;
case -4107 : //靠下
break;
}

}

//*****
//设置第一个单元格的值"HI,EXCEL!"
range.SetItem(COleVariant(1),COleVariant(1),COleVariant("HI,EXCEL!"));

//*****
//设置第一个单元格字体颜色:红色
Font font;
range.AttachDispatch(sheet.GetCells());
range.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal);
font.SetColor(COleVariant((long)0xFF0000));

//*****
//合并单元格的处理
//包括判断第一个单元格是否为合并单元格,以及将第一个单元格进行合并
Range unionRange;
range.AttachDispatch(sheet.GetCells());
unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal );

vResult=unionRange.GetMergeCells();
if(vResult.boolVal==-1) //是合并的单元格
{
//合并单元格的行数
range.AttachDispatch (unionRange.GetRows ());
long iUnionRowNum=range.GetCount ();

//合并单元格的列数
range.AttachDispatch (unionRange.GetColumns ());
long iUnionColumnNum=range.GetCount ();

//合并区域的起始行,列
long iUnionStartRow=unionRange.GetRow(); //起始行,从1开始
long iUnionStartCol=unionRange.GetColumn(); //起始列,从1开始

}
else if(vResult.boolVal==0)
{//不是合并的单元格}

//将第一个单元格合并成2行,3列
range.AttachDispatch(sheet.GetCells());
unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal );
unionRange.AttachDispatch(unionRange.GetResize(COleVariant((long)2),COleVariant((long)3)));
unionRange.Merge(COleVariant((long)0)); //合并单元格

//*****
//将文件保存为2.xls
book.SaveAs(COleVariant("C:\\\\2.xls"),covOptional,covOptional, \\
covOptional,covOptional,covOptional,0,\\
covOptional,covOptional,covOptional,covOptional);

//*****
//关闭所有的book,退出Excel
book.Close (covOptional,COleVariant(OutFilename),covOptional);
books.Close();
app.Quit();

关于excel.h和excel.cpp,要注意版本问题.
比如对excel xp, 类库是直接包含在excel.exe中. 因此你只要用加入类(add class)的方法,直接选中excel.exe,并选择对话框中的常用的几个类(如Rang)就可以编程了. 千万不要选所有的类,否则太大了.

⑼ 如何在C语言中嵌入汇编

以下所说嵌入的汇编都是GUN 的C语言中嵌入ARM汇编。

1)2个参数的内嵌语句

这种形式的汇编用于简单的语句,参数限制输入和输出语法格式如下:

asm(code : output operand list : inputoperand list : clobber list);

汇编和C语句这间的联系是通过上面asm声明中可选的output operand list和input operand list。Clobber list后面再讲。

下面是将C语言的一个整型变量传递给汇编,逻辑左移一位后在传递给C语言的另外一个整型变量。

/* Rotating bits example */

asm("mov %[result], %[value], ror#1" : [result] "=r" (y) : [value] "r" (x));

每一个asm语句被冒号(:)分成了四个部分。

 汇编指令放在第一部分中的“”中间。

"mov %[result], %[value], ror #1"

 接下来是冒号后的可选择的output operand list,每一个条目是由一对[](方括号)和被他包括的符号名组成,它后面跟着限制性字符串,再后面是圆括号和它括着的C变量。这个例子中只有一个条目。

[result] "=r" (y)

 接着冒号后面是输入操作符列表,它的语法和输入操作列表一样

[value] "r" (x)

为了增加代码的可读性,你可以使用换行,空格,还有C风格的注释。

asm("mov %[result], %[value], ror#1"

: [result]"=r" (y) /* Rotation result. */

: [value]"r" (x) /* Rotated value. */

: /* No clobbers */

);

在代码部分%后面跟着的是后面两个部分方括号中的符号,它指的是相同符号操作列表中的一个条目。

%[result]表示第二部分的C变量y,%[value]表示三部分的C变量x;

符号操作符的名字使用了独立的命名空间。这就意味着它使用的是其他的符号表。简单一点就是说你不必关心使用的符号名在C代码中已经使用了。在早期的C代码中,循环移位的例子必须要这么写:

asm("mov %0, %1, ror #1" :"=r" (result) : "r" (value))

在汇编代码中操作数的引用使用的是%后面跟一个数字,%1代表第一个操作数,%2代码第二个操作数,往后的类推。这个方法目前最新的编译器还是支持的。但是它不便于维护代码

实例代码:

2) 带.s文件的汇编

编译命令:

arm-linux-gcc main.cAsmfile_gnu.s -o mains

main.c

#include<stdio.h>

extern voidpcm8_2_pcm16(unsigned char* pIn, int nInlen, short* pOut);

extern voidpcm16_2_pcm8(short* pIn, int nInlen,unsigned char* pOut);

int main()

{

unsigned char* pIn="1234";

short pInd[256];

unsigned char pOutd[256];

int nInlen=4;

int i = 0;

short pOut[256];

for(i=0;i<4;i++)

printf(" 0x%x ",pIn[i]);

printf(" ");

memset((char *)pOut,0,256*2);

memset((char *)pInd,0,256*2);

memset((char *)pOutd,0,256*2);

pcm8_2_pcm16(pIn,nInlen,pOut);

for(i=0;i<4;i++)

printf(" 0x%x ",pOut[i]);

printf(" ");

memcpy((char *)pInd,(char *)pOut,256*2);

pcm16_2_pcm8(pInd,nInlen,pOutd);

for(i=0;i<4;i++)

printf(" 0x%x ",pOutd[i]);

printf(" ");

return 0;

}

Asmfile_gnu.s

.text

.global pcm8_2_pcm16

.global pcm16_2_pcm8

#*******************************#

#********* ENCODER 实现将第一个输入参数

#左移8位然后异或0x8000 然后拷贝到第三个参数

#DECODE 取第一个参数所指的数据先异或0x8000

#然后右移8位将数据拷贝到第三个参数

#*******************************

pcm8_2_pcm16:

MOV R6,#0

MOV R7,#0

ENCODER:

LDRB R5,[R0,R6]

MOV R8,R5,LSL#8

EOR R9,R8,#0x8000

STRH R9,[R2,R7]

ADD R7,R7,#2

ADD R6,R6,#1

SUB R1,R1,#1

CMP R1,#0

BNE ENCODER

B OVER

pcm16_2_pcm8:

MOV R6,#0

MOV R7,#0

DECODE:

LDRH R5,[R0,R6]

EOR R8,R5,#0x8000

MOV R9,R8,LSR#8

STRB R9,[R2,R7]

ADD R7,R7,#1

ADD R6,R6,#2

SUB R1,R1,#1

CMP R1,#0

BNE DECODE

OVER:

.end

⑽ c语言中如何将数组的值带进公式进行计算

#include<stdio.h>
doublef(doublex)
{
returnx+5;
}
intmain(void)
{
doublex[10]={0,1,2,3,4,5,6,7,8,9};
inti;
for(i=0;i<10;++i)
printf("%lf ",f(x[i]));
return0;
}

热点内容
工作站服务器的视频ip怎么看 发布:2025-01-08 13:09:15 浏览:648
唱吧上传卡住 发布:2025-01-08 12:52:23 浏览:530
烤鸡存储 发布:2025-01-08 12:50:16 浏览:792
android获取电量 发布:2025-01-08 12:44:42 浏览:760
samp服务器如何设置ip直播 发布:2025-01-08 12:35:20 浏览:123
5七的算法 发布:2025-01-08 12:30:59 浏览:446
linuxsvn配置 发布:2025-01-08 12:19:11 浏览:380
苹果扁头耳机如何在安卓手机上用 发布:2025-01-08 12:17:37 浏览:109
为什么解绑卡还要密码 发布:2025-01-08 12:13:51 浏览:73
反编译得到源代码的比例 发布:2025-01-08 12:12:36 浏览:620