当前位置:首页 » 操作系统 » c文件写入数据库

c文件写入数据库

发布时间: 2023-06-10 13:44:43

1. c语言中怎么向文件中写入数据啊 具体点 谢谢

不知你向文件输入的是什么数据,输入数据的函数很多,有fputc(s,fp);有fwrite()函数、、、、
下面是想文件输入字符,并把字符串中的小写字符转换成大写字符:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main()
{
FILE *fp;
char filename[20];
printf("请输入文件的名称:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open file ,,,\n");
exit(0);

}
printf("请输入字符直至结束(ctrl +z):");
fflush(stdin);
char s;

while(scanf("%c",&s),=EOF)
{
if(islower(s))
s=toupper(s);//把小写字符转换成大写字符
fputc(s,fp);

}

rewind(fp);//是位置指针重新返回文件的开头,此函数没有返回值

if((fp=fopen(filename,"r"))==NULL)//以读的方式打开文件
{
printf("cannot open file ,,,\n");
exit(0);

}

while(,feof(fp))
{
s=getc(fp);
putchar(s);

}

return 0;

}
测试:
请输入文件的名称:hello
请输入字符直至结束(ctrl +z):hello world ,
Z
Z。

2. C语言文件写入

#include"stdio.h"
#include<string.h>

main()
{
FILE *text;
char data[10];
printf("请输入你要建立的文本名字:");
scanf("%s",data);
printf("%s",data);
if((text=fopen(data,"w"))==NULL) 这里 你原先的判断就是说 成功的时候报错 还有data的引号去掉 data是个变量
{
printf("文件打开失败\n");
}
}

3. windows环境,多线程情况下,C语言向文件写入数据。

下面的程序,编译之后,你可以运行很多个实例,目前我将文件写在了D:\1.txt,每个程序写1000行数据,这些值你可以自己更改(比如 写在C:,每个程序写10000行等),等程序都写完后,你可以去文件中查看写文件的结果。补充一下,我是在VC6.0环境中写的,所以windows.h,如果你不是在这个环境中的话,可能需要修改一些定义,比如DWORD等。其他的API都是windows平台提供的API;
#include <stdio.h>
#include "windows.h"
int main()
{
//获取进程ID,因为你希望是多个进程运行同时写一个文件,所以,我们打印出进程ID
DWORD dwProcessID = GetCurrentProcessId();

//初始化我们要写入文件中的内容,及该内容长度;
char szContent[100] = {0};
sprintf(szContent,"process[%u] write file\r\n",dwProcessID);
DWORD dwContentLen = strlen(szContent);

//创建互斥量,这样可以进行进程间的互斥,当然用这个也可以做线程间的互斥
HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");
if (NULL == hMutex)
{
printf("[%u]Create/Open Mutex error!\r\n",dwProcessID);
return 1;
}

//创建或打开文件
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
printf("[%u]Creat/Open file error!\r\n",dwProcessID);
return 1;
}

//循环写入文件
for(int i = 0; i < 1000 ; i++)
{
//等待临界资源,即锁定文件
WaitForSingleObject(hMutex,INFINITE);
printf("Process[%u] Get the signal\r\n",dwProcessID);
DWORD len = 0;

//因为是共享写文件,即多个程序写一个文件,所以一定要将文件指针偏移到尾部
SetFilePointer(hFile,0,NULL,FILE_END);

//写入文件
BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);
if (rnt == FALSE)
{
printf("Process[%u] Fail to write file\r\n",dwProcessID);
}

//释放互斥量,解除锁定
ReleaseMutex(hMutex);

//加个Sleep便于我们中间观察结果
Sleep(30);
}
CloseHandle(hMutex);
CloseHandle(hFile);
return 0;
}

应你要求,我把AIP中的宏定义解释如下:
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,//表示程序对该文件有读和写的权限
FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多个程序共享读和写的权限
NULL,
OPEN_ALWAYS,//表示打开该文件,如果该文件不存在,则创建该文件
FILE_ATTRIBUTE_ARCHIVE,//文件的属性为存档
NULL);

WaitForSingleObject(hMutex,INFINITE);
//INFINITE表示永远等待,直到hMutex有信号为止

SetFilePointer(hFile,0,NULL,FILE_END);
//FILE_END表示从文件尾部开始偏移;实际此举就是将文件指针偏移到文件尾部;

4. 用c语言创建一个txt文件,并且写入数据

#include <stdio.h>

int main()

{

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

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

if(fpWrite==NULL)

{
return 0;

}

for(int i=0;i<10;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;i<10;i++)

{

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

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

}

getchar();//等待


return 1;

}


(4)c文件写入数据库扩展阅读:

c语言最常用的文件使用方式及其含义
1、"r".为读而打开文本文件.(不存在则出错)

2、"rb".为读而打开二进制文件.

3、"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)

4、"wb".为写而打开二进制文件.

5、"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)

6、"ab".为在文件后面添加数据而打开一个二进制文件.

7、"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)

8、"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置.

9、"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)

10、"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.

11、"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.

12、"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置.

参考链接来源:网络-C语言

5. C语言文件写入怎么操作

C++的文本文件写入
// outfile.cpp -- writing to a file
#include <iostream>
#include <fstream> // for file I/O

int main()
{
using namespace std;

char automobile[50];
int year;
double a_price;
double d_price;

ofstream outFile; // create object for output
outFile.open("carinfo.txt"); // associate with a file

cout << "Enter the make and model of automobile: ";
cin.getline(automobile, 50);
cout << "Enter the model year: ";
cin >> year;
cout << "Enter the original asking price: ";
cin >> a_price;
d_price = 0.913 * a_price;

// display information on screen with cout

cout << fixed;
cout.precision(2);
cout.setf(ios_base::showpoint);
cout << "Make and model: " << automobile << endl;
cout << "Year: " << year << endl;
cout << "Was asking $" << a_price << endl;
cout << "Now asking $" << d_price << endl;

// now do exact same things using outFile instead of cout

outFile << fixed;
outFile.precision(2);
outFile.setf(ios_base::showpoint);
outFile << "Make and model: " << automobile << endl;
outFile << "Year: " << year << endl;
outFile << "Was asking $" << a_price << endl;
outFile << "Now asking $" << d_price << endl;

outFile.close(); // done with file
return 0;
}

6. 如何在C/C++程序中使用数据库

一般要看使用的数据库。如果 操作 sql server 需要用到 ADO 驱动,这种驱动使用MFC做的包装类比较多一些,在控制台直接编写代码可能稍显繁琐。

如果操作mysql,在安装mysql的时候,有相应的include头文件和库文件,可以在自己的IDE开发环境中进行设置。

热点内容
预算法实施条例施行 发布:2025-04-12 04:29:30 浏览:324
类型转换java 发布:2025-04-12 04:23:31 浏览:487
博图fc块不能编译 发布:2025-04-12 04:17:12 浏览:299
android推送组件 发布:2025-04-12 04:17:10 浏览:341
关系式数据库 发布:2025-04-12 04:11:44 浏览:743
生存之旅怎么配置 发布:2025-04-12 03:49:30 浏览:785
抽奖源码下载 发布:2025-04-12 03:47:20 浏览:203
安卓坐标系在什么位置 发布:2025-04-12 03:32:13 浏览:8
佳力士压缩机 发布:2025-04-12 03:30:48 浏览:451
电脑更改服务器配置跟不上 发布:2025-04-12 03:18:50 浏览:820