A. c语言指针读取问题
如果一行就一个像m.jpg,可以用下面程序处理;如果含多个,那你把格式显示一下。最好是个例子
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//增加头文件
#define MAXLINE 100
int main()
{
FILE *fp;
char arr[MAXLINE+1];
if ((fp = fopen ("MYFILE", "r")) == NULL)
{
perror ("File open error!\n");
exit (1);
}
while ((fgets (arr, MAXLINE, fp)) != NULL)
{
if(strstr(arr,".jpg")!=NULL)
puts(arr);
//fputs (arr, stdout);//arr中存放的是字符串,例如“m.jpg”,"n.jpg","t.jpg","new.txt"等,我想让后缀为.jpg的文件名字符串才输出到stdout来,请问怎么改?????
}
return 0;
}
B. c语言如何输出指针所指向的值
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
C. C语言指针/引用/取值
指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。
根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。
&是地址操作符,用来引用一个内存地址。通过在变量名字前使用&操作符,我们可以得到该变量的内存地址。
// 声明一个int指针
int*ptr;
// 声明一个int值
int val = 1;
// 为指针分配一个int值的引用
ptr = &val;
// 对指针进行取值,打印存储在指针地址中的内容
int deref = *ptr;
printf("%d\n", deref);
第2行,我们通过*操作符声明了一个int指针。接着我们声明了一个int变量并赋值为1。然后我们用int变量的地址初始化我们的int指针。接下来对int指针取值,用变量的内存地址初始化int指针。最终,我们打印输出变量值,内容为1。
第6行的&val是一个引用。在val变量声明并初始化内存之后,通过在变量名之前使用地址操作符&我们可以直接引用变量的内存地址。
第8行,我们再一次使用*操作符来对该指针取值,可直接获得指针指向的内存地址中的数据。由于指针声明的类型是int,所以取到的值是指针指向的内存地址存储的int值。
说穿了,指针就是地址吧,这里可以把指针、引用和值的关系类比为信封、邮箱地址和房子。一个指针就好像是一个信封,我们可以在上面填写邮寄地址。一个引用(地址)就像是一个邮件地址,它是实际的地址。取值就像是地址对应的房子。我们可以把信封上的地址擦掉,写上另外一个我们想要的地址,但这个行为对房子没有任何影响。
D. c语言 指针 取值
首先更正一下楼主错误,int 型的指针不可以用来获取char型的地址的,这样会产生错误,如果你的编译系统没有报错,实际上也有错误。
第二,字符串实际上就是等于字符数组。
ptr = &str[2];
printf("%d",ptr);
reptr = *(ptr);
printf("%c",reptr);
printf("\n");
这个可以输出的。就是C
ptr = &str[2];
printf("%c",*(ptr+1));
输出的是第4个字符‘/0’就是“空”,可能楼主由此判断无法输出
ptr = &str[1];
printf("%c",*(ptr+1));
就能输出C了
int *应该不可以,不过 int的话就可以
char str[4] = "abc";
int ptr;
char reptr;
ptr =(int)&str[0];
printf("%d",(char *)ptr);
reptr = *((char *)ptr);
printf("%c",reptr);
printf("\n");
实际上利用强制类型转换,用int来存数据,意义上char 和int都是整形,所以可以一定程度上转换
E. 关于C指针 如何获取指针指向的变量的值
因为指针变量b尚未赋值,就访问它指向的内容,所以指令*b=3.14;是失败的。
给指针赋值语句是这样的:
b=&a; // 也就是你程序中注释掉的那行
给指针指向的内容赋值语句是这样的:
*b=3.14; // 前提是b必须先赋值
读取指针指向的内容的语句是这样的:
x=*b; // 其中x是一个float类型的变量,并且前提是b必须先赋值
F. C语言,指针的指针获取和传递数据。
一般来说,这种的,并不是只读取一个结构 而是文件中有一系列的不定个数的数据。
全读回来 给主函数用
这样 主函数中 定义
structstudent*stu;
调用
inttotal=ReadStudentInfo("path/file.bin",&stu);
然后 在ReadStudentInfo函数中
FILE*fp=fopen(filename,"rb");
//根据文件大小获取总的数据个数
intsize;
fseek(fp,0,SEEK_END);
size=ftell(fp);
fseek(fp,0,SEEK_SET);
inttotal=size/sizeof(structstudent);
//然后申请内存
*pStudent=(structstudent*)malloc(sizeof(structstudent)*tatol);
//读数据
fread(*pStudent,sizeof(structstudent),total,fp);
fclose(fp);
returntotal;
到主函数 就可以通过
stu[0] 到stu[total -1]来访问读到的数据了。
G. C语言 在字符串指针中读取特定内容
代码如下:
#include<stdio.h>
#include<string.h>
intmain()
{
char*text="";
char*s="content";
char*p;
//使用strstr函数查找字符串content的位置
p=strstr(text,s);
if(p!=NULL){
//跳过content使p指向content后面的内容。
p+=strlen(s);
//如果需要跳过content后面的那个空格p再加1
p++;
printf("%s ",p);
}
return0;
}
运行结果: