A. c语言对文件操作时,文件名中的有空格怎么办
C语言处理文件还没听说过不支持文件名带空格的问题
你可以把你文件操作的语句发出来看看,空格绝对不是你程序的问题所在
B. fscanf读入空格的方法!要是不行可以给我建议个方案
fscanf(fp," %c",&w[i].ID);中把" %c"的%前的空格去掉,它就是要跳过空格的意思。没有这个空格,就可以连空格一一读进来了。
C. C语言中使用fopen()时,如果路径中有空格会不会出错
一个抄有空格的例子, 把路径写在一个变量中。
#include <stdio.h>
int main()
{
FILE * fp;
char * path = "C:\\Documents and Settings\\a.txt";
if ((fp = fopen(path, "r")) == NULL)
{
printf ("Can't open the file.");
exit(1);
}
else
{
while (!feof(fp))
{
printf ("%c", fgetc(fp));
}
}
fclose(fp);
return 0;
}
D. C语言读取文件内容时怎样读取带空格的字符串
用fgets就可以了来原型是char *fgets(char *s, int n, FILE *stream); 从流自中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL char t[100];fp=fopen("file","r");fgets(t,81,fp); //从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取.
E. C语言提问:怎么删除文件里的空格和回车
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#definemaxn1000010
chars[maxn];
intmain(){
FILE*p;
p=fopen("in.txt","r");//in.txt是待处理文件名,包含后缀
fscanf(p,"%[^#]",s);//#代表待处理文件中不存的字回符
fclose(p);
intj=0;
for(inti=0;i<strlen(s);i++){
if(s[i]==''||s[i]==' ')continue;//删除空格和回车答
s[j++]=s[i];
}
s[j]=0;//0即NULL
p=fopen("in2.txt","w");//新建一个in2.txt文件
fprintf(p,"%s",s);//处理后的文件放在in2.txt中
fclose(p);
//printf("%s ",s);
}
F. fopen打开文件错误
【问题详细内容】用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,内然后读容写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。查询后发现123是卷标或路径的语法错误,首先针对的是同一文件,其次用的路径是windows传给我的参数,但是有时会出错,有时不会。是怎么 回事?
【解答】检查出错的时候,是不是文件名中有空格,或者有中文。如果是,那么就别用fopen了,用CFile类来代替吧。然后给程序里增加一些调试信息,当出错的时候,把文件名打印出来看看是否正确。发送方用的strlen()+1定义长度,这样可以把字符串尾部的结束符一起发送过去
G. C语言文件命名是否有规则
DOS系统规定文件名的字符数是8,扩展名的字符数是3,文件名字符数超过8时,DOS系统会自动进行缩略,所以struct person.dat文件无法打开。
H. c语言中把文件中的空格去除
第一种:使用位域限制读取的长度;
第二种:可以直接按照结构体来读写;
实例代码如下:
#include"stdafx.h"
#include<cstdio>
#include<cstdlib>
#include<cstring>
structRoommate{
charname[6];
charNO[8];
charaddr[10];
};
int_tmain(intargc,_TCHAR*argv[])
{
structRoommateRom[2]={0};
FILE*file=NULL;
if(!(file=fopen("a.txt","w"))){
printf("CreateFilefailed! ");
exit(-1);
}
printf(":NameNOAddr ");
for(inti=0;i<2;++i){
scanf("%s%s%s",Rom[0].name,Rom[0].NO,Rom[0].addr);
fwrite((constvoid*)&Rom[0],sizeof(structRoommate),1,file);
}
fclose(file);
/*Readfromfile*/
file=NULL;
if(!(file=fopen("a.txt","r"))){
printf("CreateFilefailed! ");
exit(-1);
}
printf("Readfromthefile:NameNOAddr ");
fread((void*)Rom,sizeof(structRoommate),2,file);
for(inti=0;i<2;++i){
printf("i=%dName:%s NO:%s Addr:%s ",i,Rom[i].name,Rom[i].NO,Rom[i].addr);
}
fclose(file);
while(getchar());
return0;
}
I. c语言fprintf开头会有很多空格的问题。
fseek(p,x,n)是找到从p文件第n个字节要移动x个字节 所以你文件开始会有空格
J. c语言fopen中文件名空格处理
试试fopen("\"c:\\hello zzz\\QQ.txt\"","w")