A. C語言有沒有從文件中讀取一行字元串的方法
從文件中查找數據並輸出,按以下步驟操作:
1.
打開文件,如果文件未找到,報錯,結束
fopen
2.
輸入待查的字元串,存到變數中
gets
3.
逐行循環讀取文件,直到文件結束
fgets
4.
檢查字元串是否在該行中,如果在,則輸出該行,關閉文件,結束。否則繼續查找
strstr
5.
循環結束,輸出未找到該字元串。
6.
關閉文件。fclose
相關代碼和運行效果如下圖:
B. C程序,如何從指定文件中讀取一個字元串
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char cl[100];
if((fp=fopen("1.txt","r"))==NULL)
exit(1);
while(fscanf(fp,"%s",cl)==1)
printf("%s
",cl);
if(fclose(fp)!=0)
exit(1);
return 0;
}
C語言是目前世界上流行、使用最廣泛的面向過程的高級程序設計語言。 C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C. c語言 把文件的內容讀入到字元串中
問題一:C語言裡面沒有string....需要定義為字元數組
問題二:要讀到結構體,你這個結構體裡面少一個指向下一個的指針,這樣才能構成鏈表。
struct Car
{
char area;
char number[6];
unsigned long chnum;
char owner[10];
char brand[10];
struct Car *next;
} *LNCar;
txt文件中間隔都用\t,然後讀取到結構體的代碼如下:
/*fp 是程序開始定義的文件指針*/
FILE *fp;
int Biao=0;
struct Car *p1=NULL,*p2=NULL,*p3=NULL;
p1=(struct Car *)malloc(sizeof(struct Car)); /*給結構指針申請空間*/
p2=(struct Car *)malloc(sizeof(struct Car));
while(fscanf(fp,"%c\t%s\t%s\t%s\t",&p1->area,&p1->number,&p1->ower,&p1->brand)!=EOF)
{
if(Biao==0) /*讀取第一個的時候要付給LNCar*/
{
Biao=1;
LNCar=p1;
p2=p1;
LNCar->next=NULL;
p1=(struct Car *)malloc(sizeof(struct Car));
}
else
{
p2->next=p1;
p2=p1;
p2->next=NULL;
p1=(struct Car *)malloc(sizeof(struct Car));
}
}
經過上面的代碼讀取後,txt文件內容就讀取到LNCar為頭的鏈表中了。
D. C語言文件讀入字元串問題
fscanf遇到\r, \n, \v, \t, \f, 空格時會結束,所以不能正確解析文件的數據行,可考慮使用sscanf.
E. C++如何從文件中讀取字元串
一般來說在C++語言中讀取txt文件的信息有三種方法:
1、使用C語言標准文件I/O中的fopen()、fread()等等函數。示例如下(vc6.0下編譯通過):
#include<stdio.h>
FILE*stream;
voidmain(void)
{
longl;
floatfp;
chars[81];
charc;
stream=fopen("fscanf.out","w+");
if(stream==NULL)
printf("Thefilefscanf.outwasnotopened ");
else
{
fprintf(stream,"%s%ld%f%c","helloworld",
65000,3.14159,'x');
/*Setpointertobeginningoffile:*/
fseek(stream,0L,SEEK_SET);
/*Readdatabackfromfile:*/
fscanf(stream,"%s",s);
fscanf(stream,"%ld",&l);
fscanf(stream,"%f",&fp);
fscanf(stream,"%c",&c);
/*Outputdataread:*/
printf("%s ",s);
printf("%ld ",l);
printf("%f ",fp);
printf("%c ",c);
fclose(stream);
}
}
2、使用C++語言中的文件I/O中的ofstream,ifstream,fstream。示例如下(vc6.0下編譯通過):
#include<iostream>
#include<fstream>
#include<cstdlib>
usingnamespacestd;
intmain(){
charbuffer[256];
ifstreamin("test.txt");
if(!in.is_open())
{cout<<"Erroropeningfile";exit(1);}
while(!in.eof())
{
in.getline(buffer,100);
cout<<buffer<<endl;
}
return0;
}
3、使用操作系統中的API函數,比如Windows上的ReadFile()、OpenFile()等等,現在操作系統一般都具備內存文件映射功能,對於大的txt文件,一般都使用這種方式操作。
F. C++中怎樣將一個文件的內容讀取到string類型的字元串中。謝謝!
先將文件全部讀入 char* 變數。再用 string 類 構建函數建一個string 對象,在把 char* 內容放入。
下面是將文件全部讀入char * buffer;
/* fread example: read an entire file */
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE * pFile;
long lSize;
char * buffer;
size_t result;
pFile = fopen ( "myfile.bin" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file:
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
// the file into the buffer:
result = fread (buffer,1,lSize,pFile);
if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
/* the whole file is now loaded in the memory buffer. */
// terminate
fclose (pFile);
free (buffer);
return 0;
}
構建函數建一個string 對象,把 char * buffer 內容存入 程序部分,請自己補充:
#include <windows.h>
#include<iostream>
#include <string>
using namespace std;
#include <stdio.h>
// 插入上面程序 .....
// 補充
string sss;
sss.assign(buffer,result);
cout << sss << endl;
G. 怎麼用C語言讀取 TXT文件中的字元串
可以使用輸入輸出重定向來將TXT文本中的字元內容導入程序中,或者使用標准C庫函數:fopen()和fgetc();
先使用fopen()函數打開TXT文本文件,然後使用fgetc讀取文本文件中的字元。讀取全部文本中全部字元可以使用一個while循環加判斷是否讀取到文件結尾來實現:
char
ch;
while((ch=
fgetc(fp))
!=
EOF)
這樣當讀取到文件結尾時,while循環就會終止。
C語文編寫編譯如下:
#include
#include
#include
#define MAXLINE 100000
#define BUFLEN 1024
int main()
{
FILE *file;
char buf[BUFLEN];
int len=0,i=0;
char *array[MAXLINE];
file=fopen("test.txt","r");//打開TXST.TxT文件
if(!file)return -1;
while(fgets(buf,BUFLEN,file))//讀取TXT中字元
{
len=strlen(buf);
array[i]=(char*)malloc(len+1);
if(!array[i])break;
strcpy(array[i++],buf);
}
fclose(file);
i--;
while(i>=0&&array[i])
{
printf("%s\n",array[i]);//列印test文檔的字元
free(array[i--]);
}
}
H. C語言程序從文件中讀取字元串
學了結構體了沒?
學過結構體就用以下方法讀寫文件
/* 寫文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 用戶信息結構體
struct user_info{
char name[30]; // 姓名
char sex[10]; // 性別
int id; // 帳號
};
int main(){
FILE *fp = fopen("user_info.txt","w+b"); // 創建一個文件
if(fp == NULL){ // 如果創建文件失敗
perror("fopen()");
return -1;
}
struct user_info u;
strcpy(u.name, "xiaoming");
strcpy(u.sex, "boy");
u.id = 12345678;
fwrite(&u, sizeof(u), 1, fp); // 把信息寫入到文件中
close(fp);
return 0;
}
/* 讀文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct user_info{
char name[30]; // 姓名
char sex[10]; // 性別
int id; // 帳號
};
int main(){
FILE *fp = fopen("user_info.txt","r+b"); // 打開一個文件
if(fp == NULL){ // 如果打開文件失敗
perror("fopen()");
return -1;
}
struct user_info u;
fread(&u, sizeof(u), 1, fp); // 把讀取文件
// 列印讀取的信息
printf("name:%s sex:%s id:%d\n", u.name, u.sex, u.id);
close(fp);
return 0;
}
I. C語言中,想把文件中的內容讀取到一組字元串該怎麼辦幫忙找找錯。
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
charline[15][50];
FILE*outFile=fopen("D:\Holidays.txt","r");
for(inti=0;i<15;i++)
fscanf(outFile,"%s",line[i]);
system("pause");
}
這是我幫你改的,你是打開文件失敗了,還有就是沒有空間存在字元串