非常着急!c语言被调函数如何用主函数的内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非常着急!c语言被调函数如何用主函数的内容相关的知识,希望对你有一定的参考价值。
#include <stdio.h> #include <malloc.h> int Query(int s,int Num,struct cc ** pArr) int min = 0; int max = Num-1; int mid = (min+max)/2; while(s!=pArr[mid].ID) if(s>pArr[mid].ID) min = mid; mid = (min+max)/2; else if(s<pArr[mid].ID) max = mid; mid = (min+max)/2; if(mid==min) break; if(s==pArr[mid].ID) return mid; else if(s==pArr[max].ID) return max; else printf("没有找到这个职工编号"); struct Worker char Name[20];//职工名称 int ID;//职工号 ; //主函数,实现职工的姓名和编号的排序 int main (void) int i, j; struct Worker w;//结构体变量w用来替换 int Num;//Num为职工个数 printf("请输入职工的个数!\n"); printf("职工个数:"); scanf("%d", &Num);//将键盘上输入的职工个数赋给Num struct Worker * pArr;//定义一个结构体类型的指针变量pArr //定义一个动态的一维数组,实现员工的名称和编号的录入 pArr = (struct Worker *)malloc(Num * sizeof(struct Worker)); for(i=0; i<Num; ++i) printf("请输入第%d个员工的信息!\n", i+1); printf("职工姓名:"); scanf("%s", pArr[i].Name); printf("职工号:"); scanf("%d", &pArr[i].ID); printf("\n\n"); //用冒泡排序法实现排序 for(i=0; i<Num-1; i++) for(j=0; j<Num-1-i; j++) //比ID后,互换,大职工号向后移 if(pArr[j].ID > pArr[j+1].ID) w = pArr[j]; pArr[j] = pArr[j+1]; pArr[j+1] = w; //输出职工姓名和编号 printf("排序后的职工信息为:\n"); for(i=0; i<Num; i++) // printf("第%d个职工的信息为:\n", i+1); printf("姓名:%s ", pArr[i].Name); printf("编号:%d\n", pArr[i].ID); printf("请输入您要查找的职工号,按Enter键确认:"); int s; int n; scanf("%d\n",&s); n = Query(s,Num,pArr); printf("您要查找的职工姓名为:%s\n",pArr[s].Name); return 0;
参考技术A 使用函数头进行包含,使用#include提示符。自定义的函数头文件使用双引号扩起来。希望对你有所帮助C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!
C语言中没有FtpPutFile函数,这是VB中的函数。
C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。
例程:
#include <winsock.h>#include <stdio.h>
WORD wVersionRequested;
WSADATA wsaData;
char name[255]; //name里是本机名
CString ip; //本机IP
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
if( gethostname ( name, sizeof(name)) == 0)
if((hostinfo = gethostbyname(name)) != NULL)
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
WSACleanup( );
// AfxMessageBox(name);//name里是本机名
// AfxMessageBox(ip); //ip中是本机IP
CStdioFile File;
File.Open("C://ip.txt",CFile::modeCreate|CFile::modeReadWrite);
//如果文件事先不存在的话,就需要CFile::modeCreate,否则就不需要。
File.WriteString(ip+":"+"8000");
File.Close(); //注意,这里一定要把文件关闭,否则不能成功上传
CString host="204.45.67.11";
CString user="19337";
CString password="1234567";
TRACE(":%s:%s:%s:%s/n", host,
user, password, "C://ip.txt");
CInternetSession session
(AfxGetApp()->m_pszAppName);
CFtpConnection* pConn = NULL;
pConn = session.GetFtpConnection (host,user,password);
if (pConn)
if (!pConn->PutFile("C://ip.txt","ip.txt"))
MessageBox("传送文件失败??");
else
MessageBox("传送文件成功!");
pConn->Close();
delete pConn;
session.Close();
else
MessageBox("Cannot Connect");
- 先后使用InternetOpen和InternetConnect打开连接。使用CreateFile函数打开本地文件。使用FtpOpenFile函数打开远程文件。分别使用InternetReadFile和ReadFile函数读取 FTP 或本地文件。分别使用InternetWriteFile和WriteFile函数写入 FTP 或本地文件。使用CloseHandle函数关闭本地文件句柄。使用InternetCloseHandle函数关闭 FTP 文件句柄。
编译时加wininet.lib这个库
以上是关于非常着急!c语言被调函数如何用主函数的内容的主要内容,如果未能解决你的问题,请参考以下文章
C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!
C语言中总是从main函数开始执行,那执行好main函数后,是按照从上到下的顺序执行吗
在c语言中子函数引用主函数中的值和引用主函数某个值的地址的区别