当前位置:首页 » 编程语言 » c语言怎么提取含有2的数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么提取含有2的数据

发布时间: 2022-06-20 12:46:22

c语言编程中输入1+2=格式的数据作为数组中数据(例如把1+2=输入为啊a[1]),如何把1,2,单独提取出

你输入的时候给个数组就行了;
int a[2];
for(int i=0;i<2;i++)
{
scanf("%d",&a[i]);//在里面输入1,2,那么a[0]就为1,a[1]为2;
}
如果你想加起来的话就在定义个数据
比如 int b;
b=a[0]+a[1] 意思就是b=1+2了;

② C语言中怎样从 txt文件中提取数据,希望有详细的说明

FILE* fo;
fo=fopen("文件名","r");
然后建立一个新文件供写入
FILE* fn;
fn=fopen("文件名","w+");
然后用fgetc读,读到的东西存到数组里,每遇到\n就开一个新数组,直到读到EOF
读出来的东西再一个一个fputc回新文件里就行了。
最后
fclose(fo);
fclose(fn);

补充:
fo是FILE型指针,可能指向文件的任何位置,用fseek等操作
fgetc读出来是一个char,肯定要放到一个char型数组对吧,你可以用几万行的2维数组,也可以用几万个1维数组
遇到行结束了,要不就转向二维数组的下一行,要不就新建一个1维数组,这个你会吧:
int* a;
a=(int*)malloc(10000*sizeof(int));
建议用2维数组,简单一点
几万行的文件一点都不大,可以说是比较小的:),放心。
还有,建议你多去看看MSDN之类的或者C教材中对文件操作例程的信息。

③ 如何用C语言取数据

//其中的in.txt就是你要读取数据的文件,当然把它和程序放在同一目录
-------------------------------------
#include
<stdio.h>
int
main()
{
int
data;
FILE
*fp=fopen("in.txt","r");
if(!fp)
{
printf("can't
open
file\n");
return
-1;
}
while(!feof(fp))
{
fscanf(fp,"%d",&data);
printf("%4d",data);
}
printf("\n");
fclose(fp);
return
0;
}
2
猴岛ID
饭叔为你解答
望采纳

④ 在C语言中,怎样取小数只取2两位 然后赋值给字符串

方法:
1.
定义字符数组用来存储字符串
2.
定义浮点数赋值,如:double
d=1.23456;
3.
用sprintf()的%.2f格式截取浮点数的小数位,第三位四舍五入
4.
输出结果验证
参考代码:
附:sprintf()函数格式说明(与printf格式相同):
%m.nf

m是输出输出数据最小字符宽度(可省,按实际长度输出),n为小数点后保留位数(0表示不输出小数位和小数点),第n+1位四舍五入,f表示按浮点数输出。

⑤ C语言,怎么在另一个程序中提取数据

可以通过往这个程序中传递一个数组指针,在下一个程序中定义好一个数组,并调用上一个程序,这样这360个数据就跑到下一个程序中了。

⑥ C语言如何读取两列数据,然后进行简单处理后输出到另一个文件中谢谢!

#include<stdio.h>

intmain()
{
FILE*fp,*fp1;
inta[20][2];
fp=fopen("1.txt","r+");//以可读的方式打开1.txt文件
fp1=fopen("2.txt","w");//以可写的方式打开2.txt文件
inti=0;
while(!feof(fp))//读至文件末尾
{
fscanf(fp,"%d%d",&a[i][0],&a[i][1]);//从文件1.txt中读取数据
i++;
}
intx=0,y=0;
for(intj=0;j<i;j++)
{
x+=a[j][0]*a[j][1];
y+=a[j][1];
}
fprintf(fp1,"%f",(double)x/y);//将结果数据写入2.txt文件
return0;
}//就是讲printf改成fprintf就变成写入文件了

⑦ 怎样用C语言提取txt中二维数据,然后输出到excel中制作成一个邻接矩阵

这应该是图论里的比较典型的通路问题,将所有的数据存到一个二维数组a[90][90],这个数组全部初始化位0,然后根据输入操作,比如输入1,75那么a[0][74]
=
1;然后用Warshall算法求矩阵的传递闭包即可!相关资料自己查阅一下,慢慢研究!祝早日成功!

⑧ 用c语言提取下面txt里gene后面的2组数据并另存为文档

标准C99代码
#include <stdio.h>
#include <string.h>
int main()
{
char fin_name[]="input.txt",//输入文件名
fout_name[]="output.txt";//输出文件
FILE *fin=fopen(fin_name,"rt"), *fout=fopen(fout_name,"wt");
char word[500],c=0;
if(!fin){
printf("ERROR: Cannot open file %s",fin_name);
return -1;
}
while(fscanf(fin,"%s",word)!=EOF){
if(strcmp("gene",word)==0){
for(c=0;c<2;c++){
if(fscanf(fin,"%s",word)!=EOF){
fprintf(fout,"%s ",word);
printf("%s ",word);
}else{
printf("ERROR: the content of %s is malformed",fin_name);
fclose(fin);fclose(fout);
return -2;
}
}
fputc('\n',fout);
putchar('\n');
}
}
fclose(fin);fclose(fout);
return 0;
}
============
273 734
8848 11415
11918 12241
16844 17791

⑨ c语言中如何提取二进制数中的某一位

下面是三种方式:

①通过模2除2(%2、/2)的方法

num%2——取出二进制的最后一位

num/2——右移去掉二进制的最后一位

通过while循环,依次取出二进制的最后一位数字判断是否为1,若为1则count++,while(num)只有当num变为0时循环结束。

问题:在测试-1出现bug,-1的二进制中应该有32个1,输出却为0。我们将-1带入代码中发现-1%2=0,count不增,然后-1/2=0,循环结束,故输出count的值为0。

解决方案:将变量num的数据类型改为unsigned int (无符号整型),此时表示的是正的整型的最大值,所以当num=-1时,表示二进制为32个1的正数,通过循环可以输出正确的个数。

②通过右移操作符(>>)、按位与操作符(&)实现

Example:当num=10(1010),通过右移操作num>>i,二进制向右移动i位。

//i=0,num>>0,右移0位,此时(1010)&(0001)=0

//i=1,num>>1,右移1位,此时(0101)&(0001)=1,count++

//i=2,num>>2,右移2位,此时(0010)&(0001)=0

//i=3,num>>3,右移3位,此时(0001)&(0001)=1,count++

……

因为二进制共32位,所以循环要执行32次后结束,得到count为2。

缺点:不够高效,必须循环32次。

③通过按位与操作符(&)巧妙运算实现

Example: 当num=15时,

1//num&(num-1)=(1111)&(1110)=(1110)

2//num&(num-1)=(1110)&(1101)=(1100)

3//num&(num-1)=(1100)&(1011)=(1000)

4//num&(num-1)=(1000)&(0111)=0 ,循环停止。共执行4次while循环。

(9)c语言怎么提取含有2的数据扩展阅读

一、指定的某一位数置1

宏 #define setbit(x,y) x|=(1<<y)

二、指定的某一位数置0

宏 #define clrbit(x,y) x&=~(1<<y)

三、指定的某一位数取反

宏 #define reversebit(x,y) x^=(1<<y)

四、获取的某一位的值

宏 #define getbit(x,y) ((x) >> (y)&1)