×

c打开文本文件写主数据库

c打开文本文件写主数据库(c语言打开文本)

admin admin 发表于2023-04-01 02:59:10 浏览61 评论0

抢沙发发表评论

本文目录一览:

如何用C编写代码从文本文档中提取数据

大致可以这么做,你可以参考一下,只是我的一个思路,你先试试看,通过一个循环 每次从tet文件中读取一行字符串到一个buff中去,然后到buff中查找这样的一个字符串。52424 1951 1 6 **** 这样一个字符串,记住中间的空格。在一个字符串中 查找目标字符串,网上有很多这样的代码,你去查查看

C++中怎么用txt文件模拟数据库?

将这个登录表文件,用一条链表来管理,实现功能:

bool chk_people(string id);

bool chk_people(string id,string pwd);

bool add_people(string id,string pwd);

bool del_people(string id);

bool read_file(string filename);

bool write_file(string filename);

链表中的数据可以手动添加几个,也可以从文件读入,总之先初始化链表,然后让用户操作。

每一次将用户的操作都先保存在链表里,在用户退出时就把链表中的数据全部写入到外部文件,将文件覆盖就行了,以后读入时就是新的内容了。

答应过你,把源码贴上来,调试运行过,得到预期结果

#include iostream

#include fstream

#include string

using namespace std;

struct guest{

string id;

string pwd;

guest(string i,string p):id(i),pwd(p){next = NULL;}

guest* next;

};

class guest_mgr{

private:

guest* head;

public:

guest_mgr();

bool chk_people(string id);

bool chk_people(string id,string pwd);

bool add_people(string id,string pwd);

bool del_people(string id);

bool read_file(string filename);

bool write_file(string filename);

void print_people();

~guest_mgr();

};

guest_mgr::guest_mgr(){

head = new guest("admin","123");

head-next = NULL;

}

bool guest_mgr::read_file(string filename){

ifstream inobj(filename.c_str());

if(!inobj){

cout"open file failed.\n";

return false;

}

guest *t,*p;

string sid,spwd;

p = head;

while(!inobj.eof()){

inobjsidspwd;

t = new guest(sid,spwd);

p-next = t;

p = t;

}

t-next = NULL;

return true;

}

bool guest_mgr::write_file(string filename){

ofstream outobj(filename.c_str());

if(!outobj){

cout"file open failed.";

return false;

}

guest* p = head;

while(NULL!=p){

outobjp-id" "p-pwd"\n";

p=p-next;

}

return true;

}

bool guest_mgr::add_people(string id,string pwd){

if(NULL==head)

return false;

guest* p = head;

while(NULL!=p-next){

p = p-next;

}

guest* newguest = new guest(id,pwd);

p-next = newguest;

newguest-next = NULL;

return true;

}

bool guest_mgr::chk_people(string id){

if(NULL==head)

return false;

guest *p = head;

while(NULL!=p-nextid!=p-id){

p = p-next;

}

if(NULL!=p-next){

return true;

}

else if(NULL==p-nextid==p-id)

return true;

return false;

}

bool guest_mgr::chk_people(string id,string pwd){

if(NULL==head)

return false;

guest *p = head;

while(NULL!=p-nextid!=p-id){

p = p-next;

}

if(NULL!=p-next){

if(pwd==p-pwd)

return true;

}

else if(NULL==p-nextid==p-id)

if(pwd==p-pwd)

return true;

return false;

}

bool guest_mgr::del_people(string id){

if(chk_people(id)){

guest *p = head;

guest *pre = p;

while(NULL!=p-nextid!=p-id){

pre = p;

p = p-next;

}

if(NULL!=p-next){

pre-next = p-next;

delete p;

return true;

}

else if(NULL==p-nextid==p-id){

if(p!=head){

pre-next = NULL;

delete p;

return true;

}

}

}

return false;

}

void guest_mgr::print_people(){

if(NULL==head){

cout"no guest in the list.\n";

return;

}

guest* p = head;

while(NULL!=p){

coutp-id" "p-pwd"\n";

p=p-next;

}

coutendl;

}

///////////////////////////////菜单//////////////////////////////

guest_mgr* mylist;//在菜单函数中要用到,不要移动它

string fn = "data.txt";//同上

void login(){

cout"\n-------------------Login----------------------\n";

string id,pwd;

cout"ID:";

cinid;

if(mylist-chk_people(id)){

cout"\nPassword:";

cinpwd;

if(mylist-chk_people(id,pwd)){

cout"\nlogin successful.\n";

}

else{

cout"sorry,your password is wrong.\n";

}

}

else{

cout"the id is not exsit.\n";

}

cout"\n-------------------Login----------------------\n";

}

void add(){

cout"\n-------------------Add Guest----------------------\n";

string id,pwd;

cout"ID:";

cinid;

cout"\nPassword:";

cinpwd;

if(mylist-add_people(id,pwd)){

cout"\nadd guest successful.\n";

}

else{

cout"sorry,the system is wrong.\n";

}

cout"\n-------------------Add Guest----------------------\n";

}

void del(){

cout"\n-----------------Delete Guest--------------------\n";

string id;

cout"ID:";

cinid;

if(mylist-chk_people(id)){

char c;

cout"\nare you sure to delete the guest with ID "id" .(Y/N)"endl;

cinc;

if(c=='y'||c=='Y'){

if(mylist-del_people(id))

cout"delete guest successful.\n";

else

cout"sorry,the system is wrong.\n";

}

}

else{

cout"\nsorry,the guest "id" is not exsit.\n";

}

cout"\n-----------------Delete Guest--------------------\n";

}

void menu(){

int c;

cout"\n****************************Main Menu****************************\n";

cout"1.登录\t2.添加用户\t3.删除用户\t4.打印用户清单\t5.退出";

cout"\n****************************Main Menu****************************\n";

cinc;

switch(c){

case 1:login();break;

case 2:add();break;

case 3:del();break;

case 4:mylist-print_people();break;

default:mylist-write_file(fn);exit(0);

}

}

void main(){

mylist = new guest_mgr();

mylist-read_file(fn);

while(1)

menu();

coutendl;

}

c语言关于从数据库读取数据写文件

#include  stdio.h

exec sql include sqlca;

int main(){

    exec sql begin declare section;

        char userpasswd[30]="openlab/123456";

        struct{

            int  id;

            char name[30];

            double salary;

        }emp;

    exec sql end   declare section;

    exec sql connect:userpasswd;

    exec sql declare empcursor cursor for 

        select id,first_name,salary  from 

        s_emp order by salary;

    exec sql  open  empcursor;

    exec sql  whenever notfound do break;

    for(;;){

    exec sql  fetch empcursor into :emp;

    printf("%d:%s:%lf\n",emp.id,emp.name,

                     emp.salary);

    }

    exec sql  close empcursor;

    exec sql commit work release;    

}

把数据存到结构体里。

C语言如何实现对txt文件的读取和写入

1、使用VS新建空工程,直接点击确定,如下所示。

2、新建c文件,用于C语言编译器,输入main.c文件,如下所示。

3、参考代码:

#include stdio.h

int main()

{

  //下面是写数据,将数字0~9写入到data.txt文件中

  FILE *fpWrite=fopen("data.txt","w");

  if(fpWrite==NULL)

  {

      return 0;

  }

  for(int i=0;i10;i++)

      fprintf(fpWrite,"%d ",i);

  fclose(fpWrite);

  //下面是读数据,将读到的数据存到数组a[10]中,并且打印到控制台上

  int a[10]={0};

  FILE *fpRead=fopen("data.txt","r");

  if(fpRead==NULL)

  {

      return 0;

  }

  for(int i=0;i10;i++)

  {

      fscanf(fpRead,"%d ",a[i]);

      printf("%d ",a[i]);

  }

  getchar();//等待

  return 1;

}

4、编译完成后,运行exe程序,执行后显示console程序。

用C语言打开文本文件,然后以二进制保存

这些都是c语言打开文件函数fopen的一个参数打开文件方式的值:

定义函数

file

*

fopen(const

char

*

path,const

char

*

mode);

函数说明

参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

mode有下列几种形态字符串:

r

打开只读文件,该文件必须存在。

r+

打开可读写的文件,该文件必须存在。

rb+

读写打开一个二进制文件,只允许读写数据。

rt+

读写打开一个文本文件,允许读和写。

w

打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+

打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a

以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

a+

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

wb

只写打开或新建一个二进制文件;只允许写数据。

wb+

读写打开或建立一个二进制文件,允许读和写。

wt+

读写打开或着建立一个文本文件;允许读写。

at+

读写打开一个文本文件,允许读或在文本末追加数据。

ab+

读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b

字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在posix系统,包含linux都会忽略该字符。由fopen()所建立的新文件会具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)权限,此文件权限也会参考umask-c打开文本文件写主数据库

值。

自己看吧

C语言文件打开函数

ANSI

C规定文件打开用函数fopen,关闭为fclose。

1、调用方式通常为:

代码如下:

FILE

*fp;

fp=fopen(文件名,

打开方式);

2、参数说明:

文件名:

形如"myfile.dat"、"F:\data\myfile.dat"等等;

打开方式:

"r"(只读)

为输入打开一个文本文件

"w"(只写)

为输出打开一个文本文件

"a"(追加)

向文件文件尾添加数据

"rb"(只读)

为输入打开一个二进制文件

"wb"(只写)

为输出打开一个二进制文件

"r+"(读写)

为读写打开一个文本文件

"w+"(读写)

为读写建立一个新的文本文件

"a+"(读写)

为读写打开一个文本文件

"rb+"(读写)

为读写打开一个二进制文件

"wb+"(读写)

为读写建立一个新的二进制文件

"ab+"(读写)

为读写打开一个二进制文件

3、注意:

(1)用"r"方式打开的文件,不能向其输入数据,并且该文件已存在,否则出错;

(2)用"w"方式打开的文件,只能向该文件输入数据,如果所打开的文件不存在,则在打开时新建一个以指定的名字命名的文件;如果指定文件存在,则在打开时将该文件删去,然后新建一个新的文件;

(3)如果函数fopen打开文件出错,则fopen返回一个空指针值NULL;

(4)在程序开始运行时,系统自动打开3个标准文件:标准输入(stdin),标准输出(stdout),标准出错输

出(stderr)。如果要使用输入输出终端,则不需要打开,可以直接使用,如fputc(stdout,'a');向屏幕输出字符a。