㈠ c语言读写文件,文件名长度有限制吗
以前dos时代文件名是有限制的,所谓的8.3格式
即文件名最多8个字符,扩展名最多3个字符
win95后可以很长了
可能是编译器问题。我猜你用的是tc吧?dos下的16位编译器。可能不支持长文件名。
我在g++编译器下试了,可以成功。
㈡ 用纯C语言取得文件长度
size是要读取的字节个数,一般用sizeof()来定义nitems是要读取的元素个数,也就是读取多少个sizeof()字节个数
㈢ 【C语言】计算文件长度,把文件内容读取到内存中
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
main ()
{
string str;
ifstream f1 ( "1.txt" );
if (f1.fail())
{
cerr<<"open failure on 1.txt"<<endl;
return 1;
}
ifstream f2 ( "2.txt" );
if (f2.fail())
{
cerr<<"open failure on 2.txt"<<endl;
return 1;
}
ofstream out ( "3.txt" );
if (out.fail())
{
cerr<<"open failure on 3.txt"<<endl;
return 1;
}
while ( getline (f1, str))
{
out<<str<<endl;
}
while ( getline (f2,str))
{
out<<str<<endl;
}
f1.close();
f2.close();
out.close ();
return 0;
}
可以参照这个试试
㈣ C语言中如何方便地得到文件长度
xdg1981的方法对大多数文件有效
alexzhu80s的方法调用的是unix的函数,不是标准库中的。不是每种操作系统都有stat函数。
没有100%正确的方法,xdg1981的方法成功率最高。
你最好根据你所用的操作系统来调用操作系统提供的接口。例如unix的stat及windows的GetFileSize
㈤ C语言 文本文件长度
long get_file_size( FILE* fp )
{
if (fp==NULL) return -1;
fseek( fp, 0L, SEEK_END );
return ftell(fp);
}
㈥ C语言中 怎样读取一个文本文档中的特定位置的特定长度的字符
你的这个result是什么?应该是个文件吧.
编写这样的程序主要用到(1)fopen函数,用于打开文件,返回一个文件指针,fwrite函数,写入文件(也就是你要的result文件),及fclose函数,文件操作完时要关闭文件指针.(2)fseek函数,用于文件指针的定位,也就是将文件指针放到你要操作的文件中的某个位置.(3)然后用的就是fread函数,用于读取一块数据,你可以指定数据的长度,没有什么技术可言的,自己查一下这几个函数的原型就会明白了.
㈦ c语言如何通过文件属性获取文件大小
在"stdio.h"中有如下定义
struct_iobuf{
char*_ptr;//文件输入的下一个位置
int_cnt;//当前缓冲区的相对位置
char*_base;//指基础位置(即是文件的其始位置)
int_flag;//文件标志
int_file;//文件的有效性验证
int_charbuf;//检查缓冲区状况,如果无缓冲区则不读取
int_bufsiz;//文件的大小
char*_tmpfname;//临时文件名
};
typedefstruct_iobufFILE;
㈧ C语言中如何获取数据长度
C语言中字符串有一个结束符'\0',一个正常的字符串的最后一个字符都是'\0',在你定义一个常量字符串时就自动帮你加上去了,比如"abc"其实有4个字符{'a', 'b', 'c', '\0'},最后一个'\0'表示字符串到这就结束了,以防止内存读取越界,同时也以此来计算字符串长度,而不是再传一个int参数表示字符串的长度。因此a在内存中长度为6,但由于最后一个字符'\0'只是结束符,所有一般说长度时会忽略掉最后一个字符
string.h中提供了strlen函数可以方便地计算字符串的长度,不过注意strlen返回值的类型为size_t,x64下定义为uint64_t,x86下为uint32_t,所以记得进行类型转换
第一种:调用C库函数strlen(头文件<string.h>)
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";
printf("%d\r\n", (int)strlen(a));
return 0;
}
第二种:手动计算长度
#include <stdio.h>
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";
char* p = a;
while ('\0' != *p)
{
p++;
}
printf("%d\r\n", (int)(p - a));
return 0;
}
㈨ c语言求文件长度,ftell得到文件长度为-1
C语言获取文件长度及全部内容,参考代码如下:
FILE*fp;
fp=fopen("localfile","rb");//localfile文件名
fseek(fp,0L,SEEK_END);/*定位到文件末尾*/
flen=ftell(fp);/*得到文件大小*/
p=(char*)malloc(flen+1);/*根据文件大小动态分配内存空间*/
if(p==NULL)
{
fclose(fp);
return0;
}
fseek(fp,0L,SEEK_SET);/*定位到文件开头*/
fread(p,flen,1,fp);/*一次性读取全部文件内容*/
p[flen]=0;/*字符串结束标志*/
all:strchange.o
gcc-ostrchange.o-cstrchange.c
strchange.o:strchange.c
gcc-ostrchangestrchange.o
clean:
rm-rfstrchange*.o