C语言修改文件中的数据

#include"string.h”
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define MAXSIZE 3
typedef struct airline
{
char str_name[10];/*起点站名 /
char ter_name[10];/
终点站名 /
char air_num[10];/
航班号*/
char plane_num[10];/*飞机号*/
char day[7];/*飞行周日(星期几)*/
int tkt_amt;/*乘员定额*/
int tkt_sur;/*余票量*/
int money;
}lineinfo;

struct airline start;
struct airline *find()
/
根据系统提出的航班号查询并以指针形式返回*/
{
struct airline *info;
char number[10];
int i = 0;
info = start;
printf("请输入航班号:");
scanf("%s", number);
while (i if (!strcmp(number, info->air_num))
return info;
info++;
i++;
}
printf("对不起,该航线末找到!\n");
return NULL;
}

struct airline *fix_start(struct airline *p)
{
// 求大神在这里用文件修终点站名
return p;
}
void display(struct airline *p)

{
printf("%8s\t%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\t%10d\n", p->str_name, p->ter_name, p->air_num, p->plane_num, p->day, p->tkt_amt, p->tkt_sur, p->money);
}

void main() /* 主函数 */
{
int i = 0;
struct airline * p;
FILE *fp = NULL;
struct airline air[MAXSIZE];
char msg[1024] = { 0 };
fp = fopen("初始航线.txt", "r");
if (fp == NULL)
{
printf("读取失败");
}
else
{
while (fgets(msg, 1024, fp) != NULL)
{
sscanf_s(msg, "%s %s %s %s %s %d %d %d", &air[i].str_name, 20, &air[i].ter_name, 20, &air[i].air_num, 20, &air[i].plane_num, 20, &air[i].day, 20, &air[i].tkt_amt, &air[i].tkt_sur, &air[i].money);
i++;
}
}
if (i == MAXSIZE)
printf("读取成功\n");
system("pause");
start = &air[0];
p = find();
fix_start(p);
display(p);

}
这个是文件内容
shanghai beijine 1 B8571 SUN 3 3 100
beijing shanghai 2 S1002 MON 2 2 200
tianjing london 3 L1003 FRI 1 1 300

1个回答

使用这样发帖。。。不然代码不全。。。

 struct airline *fix_start(struct airline *p)
{
    //获取输入的航班终点名并写入到文件中

    return p;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言修改文件中某一行

RT,在vc2010下,做的学生管理系统。没有采用链表。 已经找到所要修改的行,并且修改成功,在内存中已经看到修改后的结果,并用fflush写回文件。 但是文件就是没有改变,上代码,求帮助,已经卡在这一天半了。 ``` #include"head_1.h" void change_stu(int id,char name[20],float score) { FILE *fp2; char str[20]; char a[20]; int ch2; int i; int j; char *path2="E:\\wangdao\\C\\student system\\Usr_infor_t.txt"; fp2=fopen(path2,"r+"); ch2=0; i=0; printf("输入要修改的学生\n"); fflush(stdin); scanf("%d",&i); printf("按格式输入修改的数值\n"); while (!feof(fp2)) { while(fscanf(fp2,"%d",&ch2)!=EOF) { if(i==ch2) { for(j=0;j<2;j++){ gets(str);} fgets(a,20,fp2); printf("%s\n",a); strcpy(a,str); fprintf(fp2,a); fflush(fp2); printf("%s\n",str); break; }else{ fgets(str,20,fp2); } } break; } fclose(fp2); system("pause"); } ```

C语言中如何删除TXT文件中特定的结构体数组

用 r 打开文本文件a, 用a打开文本文件b,(临时文件) for{ fprintf 将a文件的数据存入fp; 判断是不是符合要删除的数据; 如果不是,将fp数据存入文件b; } 用 W 打开文件a,用r打开文件b, for{ fprintf fscanf } 生成之后打开文本文件a数据只有原本的第一条,其他的都不见了 求教 C语言中如何删除TXT文件中特定的结构体数据

c语言文件删除部分内容和修改指定内容

我想删除文件中的某一行。 网上介绍的办法大概是再建一个文件,把原文件不需删除的内容拷贝过去。 用fgets和fputs。 但fgets是一个一个字符读的… fscanf可以跳行读,该用什么函数录入呢?fprintf没用。。

如何用C语言实现.txt文件中内容的添加

问题,如何用C语言中append()函数实现5、9、13行的功能:依次将1、2、3写入到D盘ccc.txt中。 void main(){ ............1 int a=4,b=2; ............2 if(a*b==8) ............3 { ............4 //将1写入D盘ccc.txt文件中 ............5 } ............6 if(a-b==2) ............7 { ............8 //将2写入D盘ccc.txt文件中 ............9 } ............10 if(a+a==8) ............11 { ............12 //将3写入D盘ccc.txt文件中 ............13 } ............14 } ............15 我需要完整的main函数,请帮我把代码补充完整一下吧,谢谢~ ``` ```

C语言写入数据到二进制文件失败

# 相关代码如下 # 我在add()调用lessondatewrite()写进去了 #但是lessondateltater()调用lessondatewrite()没写进去 # 调试结果![图片说明](https://img-ask.csdn.net/upload/201811/02/1541169947_50238.png) #运行结果 英语行的 40 应该变成39 ![图片说明](https://img-ask.csdn.net/upload/201811/02/1541169992_687847.png) ``` typedef struct //定义一个Lesson类型的结构体 { char name[50]; char techer[50]; char location[50]; char time[50]; int number; }LESSON; /*课程结构体参数 课程名 char 50字节 授课老师 char 50字节 位置 char 50字节 开课时间 char 50字节 座位数 int 4字节 结构体大小总计 204字节*/ LESSON lessondatewrite(FILE *fl,LESSON date)//这是一个结构体类型的函数,它可以写入课程数据,接受一个文件指针 { fflush(fl);//刷新缓存区 使将要输入的数据写入硬盘 一次性输入大量数据时使用 避免输入失败 fwrite(&date,sizeof(LESSON),1,fl); } void add()//添加一个课程数据 { FILE *lessondate; LESSON lesson={0};// 声明一个LESSON类型的变量为lesson if((lessondate=fopen("lessondate","rb+"))==NULL)//若文件不存在,则建立文件 { lessondate=fopen("lessondate","wb+"); //rb+打开二进制文本文件,允许读写,若不存在返回空 //wb+新建二进制文本文件,允许读写。如果文件存在则删除文件重建 } printf("请依次输入如下数据,课程名,授课老师,教室位置,开课时间(xx月xx日xx:xx),座位数(各数据以空格隔开,回车结束)\n"); scanf("%s %s %s %s %d",&lesson.name,&lesson.techer,&lesson.location,&lesson.time,&lesson.number); //scanf在接收字符串时 不会接收空白符(空格与回车) 逗号或其他都能接收 //%s不能使用char 而是char[] fseek(lessondate,0L,SEEK_END); lessondatewrite(lessondate,lesson); fclose(lessondate); system("cls"); admin(); } void lessondatelater(int choose) { FILE *lessondate; LESSON lesson={0}; int i; lessondate=fopen("lessondate","rb+"); for(i=0;i<choose;i++) { lesson=lessondateread(lessondate);//给读取函数传递一个文件指针 假定有是三个结构体A B C 循环结束后光标在C前面B后面 } fseek(lessondate,-204L,SEEK_CUR);//后退到上一个结构体 此时光标在B前面 lesson=lessondateread(lessondate);//读取这个结构体数据 读取B的数据 此时光标前进到C前面 lesson.number--;//修改结构体数据 fseek(lessondate,-204L,SEEK_CUR);//后退到上一个结构体 此时光标在B前面 lessondatewrite(lessondate,lesson);//写入修改后结构体数据 覆盖B } ```

c语言读写文件时出现的问题

为什么我我读文件只能出现第一个数据。其他的数据都不会出现。![图片说明](https://img-ask.csdn.net/upload/201609/06/1473176549_597768.png) --------- ![图片说明](https://img-ask.csdn.net/upload/201609/06/1473176569_324374.png) ---------一下是源码 #include<stdio.h> #include<stdlib.h> #define N 30 #include<string.h> struct recipe{ char food[10]; float price; struct recipe *next; }; struct recipe* creat() { int x; int i=0; struct recipe *head,*p,*tail; head=tail=NULL; printf("请输入新添加的菜品数量:"); scanf("%d",&x); for(i=0;i<x;i++){ p=(struct recipe *)malloc(sizeof(struct recipe)); if(p==NULL) { printf("分配内存失败."); exit(1); } p->next=NULL; printf("请输入菜品的名称:"); scanf("%s",p->food); printf("请输入菜品价格:"); scanf("%f",&p->price); if(head==NULL) { head=p; tail=p; } else { tail->next=p; tail=p; } } return head; } void displayRecipe(struct recipe *p) { printf("\t\t菜名--------------------------------价格\n"); while(p!=NULL) { printf("\t\t%s-------------------------------%f\n",p->food,p->price); p=p->next; } } int choosemenu(){ printf("\t\t\t[1]输入新的菜品信息\n"); printf("\t\t\t[2]查看现有菜品信息\t\n"); printf("\t\t\t[3]将现有菜品价格从小到大排序\t\n"); printf("\t\t\t[4]查找现有菜品信息\t\n"); printf("\t\t\t[5]删除现有菜品信息\t\n"); printf("\t\t\t[6]保存修改菜品信息\t\n"); printf("\t\t\t[7]退出菜品信息管理系统\t\n"); printf("\t\t\t[8]读取已有文件信息.\t\n"); printf("\t\t\t[9]清屏。\t\n"); printf("\t\t\t请选择: \n"); return 0; } struct recipe *Newsth(struct recipe *p) { struct recipe *m; if((m=(struct recipe *)malloc(sizeof(struct recipe)))==NULL) { printf("分配内存失败"); exit(1); } printf("请输入新输入的菜品名称:"); scanf("%s",m->food); printf("请输入新输入的菜品价格:"); scanf("%f",&m->price); m->next=p; return m; } struct recipe *sort(struct recipe *b) { struct recipe *p,*pre_min,*min,*first,*tail; first=NULL; while(b->next!=NULL) { for(p=b,min=b;p->next!=NULL;p=p->next) { if((p->next->price)<(min->price)) { pre_min=p;//保留当前所找到最小节点的前驱节点 min=p->next;//保留当前最小节点 } } if(b==min) { b=b->next; } else { pre_min->next=min->next;//将当前最小节点移出链表 } if(first==NULL) { first=min; tail=first; } else { tail->next=min; tail=min; } } if(b->next==NULL) { tail->next=b; tail=b; } return first; } void search(struct recipe *d) { char name[10]; printf("请输入需要查找的菜品名称:"); scanf("%s",name); while(strcmp(d->food,name)!=0) { d=d->next; if(d==NULL){ printf("输入有误,请重新输入.\n"); break;} } if(d!=NULL) printf("你要查找的菜品信息为%s,价格为%f\n",d->food,d->price); } struct recipe *Delete(struct recipe *h) { struct recipe *f,*j,*start; char target[10]; start=h; start->next=h->next; printf("请输入你想要删除的菜品的名称:"); scanf("%s",target); while(strcmp(h->food,target)!=0) { if(h->next->next==NULL) j=h; h=h->next; } if(h->next==NULL) { j->next=NULL; free(h); } else{ strcpy(h->food,h->next->food); h->price=h->next->price; f=h->next; if(h->next->next!=NULL) h->next=h->next->next; else h->next=NULL; free(f); } return start; } void save(struct recipe *g) { FILE *fp; if((fp=fopen("d:\\recipe.txt","w"))==NULL) { printf("无法打开文件.\n"); exit(0); } while(g!=NULL) { fprintf(fp,"\t\t%s\t\t\t%f\n",g->food,g->price); g=g->next; } fclose(fp); } void read(struct recipe *j){ FILE *f; if((f=fopen("d://recipe.txt","r"))==NULL) { printf("无法读取文件.\n"); exit(0); } while(j!=NULL) { fscanf(f,"\t\t%s\t\t\t%f\n",j->food,&j->price); printf("\t\t%s\t\t\t%f\n",j->food,j->price); j=j->next; } fclose(f); } void cls() { system("cls"); } void main(){ int n=0; struct recipe *head=NULL; printf("--------------------欢迎进入订餐管理系统--------------------------\n"); printf("-------首次进入请确认你已写好菜品信息--------\n"); head=creat(); system("cls"); while(n!=7){ choosemenu(); scanf("%d",&n); switch(n){ case 1:head=Newsth(head); break; case 2:displayRecipe(head); break; case 3:head=sort(head); break; case 4:search(head); break; case 5:head=Delete(head); break; case 6:save(head); break; case 7:printf("Thanks for your use!\n\n\n\n"); break; case 8:read(head); break; case 9:cls(); break; default:choosemenu(); printf("输入有误,请重新输入.\n"); } } system("pause"); }

c语言把结构体内容写入文件问题

#include<stdio.h> #define m 2 main(){ int i; FILE *fp; typedef struct{ int year; int month; int day; }date; struct student{ int number; char name[20]; date birth; }student1[m]; fp=fopen("student.doc","w"); for(i=0;i<m;i++){ student1[i].number=i; scanf("%s",student1[i].name); scanf("%d%d%d",&(student1[i].birth.year),&(student1[i].birth.month),&(student1[i].birth.day)); fwrite(&(student1[i]),sizeof(struct student),1,fp); } fclose(fp); } ![图片](https://img-ask.csdn.net/upload/201701/09/1483948640_901256.png)![图片](https://img-ask.csdn.net/upload/201701/09/1483948860_240961.png)

C语言用其中一个结构的体元素从文件中查找到相同的结构体之后如何从文件中输出查找到的那个结构体

```工资管理。 功能要求: ① 职工基本信息的录入、增加、删除、修改; ② 按各种条件查询职工信息; ③ 应发工资计算; ④ 其它功能,如工资分布情况统计,代交税金计算,津贴发放,工资晋级等。 ``` ``` #include<stdio.h> #include<string.h> #include<stdlib.h> int n; void member_putin_info(); void member_seaech_info(struct member member[100],int n); void member_add_info(); void member_modify_info(); void member_delete_info(); char Readspecailline_info(int i); struct member{ char name[20]; char post[20]; int age,wages; int WorkingHours; }; void member_putin_info(){ int i; FILE *fp1,*fp2; struct member member[100]; printf("Input n:"); scanf("%d",&n); if((fp2=fopen("D:\\VC data\\salary1.txt","w"))==NULL) {printf("File open error!\n"); exit(0); } fprintf(fp2,"%d",n); if(fclose(fp2)){ printf("can not close the file!\n"); exit(0); } if((fp1=fopen("D:\\VC data\\salary.txt","w"))==NULL) {printf("File open error!\n"); exit(0); //*打开文件*// } for(i=0;i<n;i++){ //*职工信息录入功能*// printf("Input name:\n"); scanf("%s",&member[i].name); fprintf(fp1,"%s ",member[i].name); printf("Input post:\n"); scanf("%s",&member[i].post); fprintf(fp1,"%s ",member[i].post); printf("Input age:\n"); scanf("%d",&member[i].age); fprintf(fp1,"%d ",member[i].age); printf("Input wages:\n"); scanf("%d",&member[i].wages); fprintf(fp1,"%d ",member[i].wages); printf("Input WorkingHours:\n"); scanf("%d",&member[i].WorkingHours); fprintf(fp1,"%d ",member[i].WorkingHours); printf("\n"); fprintf(fp1,"\n"); } if(fclose(fp1)){ //*关闭文件*// printf("can not close the file!\n"); exit(0); } } void member_seaech_info() //*职工信息查询功能*// { struct member member[100]; FILE *fp1,*fp2,*fp3; if((fp2=fopen("D:\\Vc data\\salary.txt","r"))==NULL) {printf("File open error!\n"); exit(0); } fscanf(fp2,"%d",&n); if((fp1=fopen("D:\\Vc data\\salary.txt","r"))==NULL) {printf("File open error!\n"); exit(0); } int i; char Sname[20]; char Spost[20]; int choice; int age; char ch[2]; printf("[1]Select name\n"); printf("[2]Select post\n"); printf("[3]Select age\n"); printf("[4]Selcet wages\n"); printf("[5]Select WorkingHours\n"); printf("Enter choice:"); scanf("%d",&choice); if(choice<1||choice>5) printf("输入错误!\n"); if(choice==1){ printf("Enter the name:"); scanf("%s",&Sname); for(i=0;i++;i<n){ if(strcmp(Sname,member[i].name)==0){ break; } } } if(fclose(fp1)){ printf("can not close the file!\n"); exit(0); } if(fclose(fp2)){ printf("can not close the file!\n"); exit(0);} } int main(void) { int choice; printf("enter your choice:"); scanf("%d",&choice); switch(choice){ case 1:member_putin_info();break; case 2:member_seaech_info();break; } ``` return 0; } ``` 我就用名字进行对比,完了之后找到第几个结构有相同的名字,想输出这个结构体的所有元素,但是用scanf(fp1,"%s",member[i].name)这样的做法貌似永远只取值我文件中的第一行,求大神教教我方法!! 只要方法能行可靠就okk!! ```

怎样解决C语言TXT文本输入数据时的空格问题?

**题目如下:** 1到40,一共四十个数,输入时一行不超过12个数,不超过10行,筛选出现一次的数字,出现两次的数字,三次及三次以上的数字,出现零次的数字,要求用TXT文本输入,输出。 **遇到的问题:**输入数据后,发现结果错误。仔细查找发现,每行数据后会发现几个空格,![图片说明](https://img-ask.csdn.net/upload/201501/13/1421143508_225855.png),导致了只有第一行数据能够读入。笔者试过多次,发现貌似只有这一种空格形式会对结果造成影响,其他的情况,添加很多空格也不会有事。笔者咨询前辈,说可能由于中文或者英文状态下的原因,笔者试过两种状态下输入原数据的空格,发现均输出错误结果。现在比较迷惑,不知如何改进(其实用基本能用了),还请各位大神帮帮忙,也希望大家能对我的算法提出改进意见! **代码如下:** #include<stdio.h> #include<stdlib.h> #define S 120 #define T 40 #define I 1 int main() { FILE*fp1; FILE*fp2=fopen("output.txt","w"); int num1[S],num2[T],num3[T],num4[T],num5[T],num6[T],i,j=0,k=0,a=0,b=0,c=0,d=0,m,n; if((fp1=fopen("input.txt","r"))==NULL) { printf("无法打开文件\n"); exit(0); } for(i=I;i<=T;i++) num2[j++]=i;//将1至40赋给num2数组各元素 for(i=0;i<S;i++) fscanf(fp1,"%d",&num1[i]);//从文件中读出120个的数据,并存入num1数组 fclose(fp1); for(i=0;i<T;i++) { for(j=0;j<S;j++) if(num1[j]==num2[i])k++;//比较 if(k==0) num3[a++]=num2[i]; else if(k==1) num4[b++]=num2[i]; else if(k==2) num5[c++]=num2[i]; else if(k>3||k==3) num6[d++]=num2[i]; k=0; } fprintf(fp2,"出现过零次的数字是:"); for(m=0;m<a;m++) fprintf(fp2,"%3d",num3[m]); fprintf(fp2,"\n"); fprintf(fp2,"出现过一次的数字是:"); for(m=0;m<b;m++) fprintf(fp2,"%3d",num4[m]); fprintf(fp2,"\n"); fprintf(fp2,"出现过两次的数字是:"); for(m=0;m<c;m++) fprintf(fp2,"%3d",num5[m]); fprintf(fp2,"\n"); fprintf(fp2,"出现过三次或三次以上的数字是:"); for(m=0;m<d;m++) fprintf(fp2,"%3d",num6[m]); fprintf(fp2,"\n"); fclose(fp2); return 0; }

c语言中怎样将数值型数组写到txt文件中,并且打开文件时不是一堆乱码?

求教!请问在对文件进行读写的时候,将一double型的数组写进文件中,之后打开文件,为什么都是乱码?怎么修改才能在文件中显示数值呢? 附写的代码: #include <stdio.h> #include <stdlib.h> #include <time.h> struct type { double data[2]; }; void main() { int i; struct type dataset[200]; FILE *fp; if(!(fp=fopen("dataset.txt","w"))) { printf("cannot open this file!\n"); exit(0); } for(i = 0; i < 200; i ++) { dataset[i].data[0] = (double)(rand()%500); dataset[i].data[1] = (double)(rand()%500); fwrite(&dataset[i],sizeof(struct type),1,fp); } fclose(fp);

c语言:关闭程序,再读取文件时出现开头的乱码,求助

![保存文件后的结果](https://img-ask.csdn.net/upload/201704/15/1492232723_293060.png) ![读取文件后的显示](https://img-ask.csdn.net/upload/201704/15/1492232763_96436.png) (请忽略功能文字,只是一个功能的完善,没有去修改) 以下是文件存储读取的代码 #include "record.h" //文件存储操作函数 void save(const BOOK *top) { const BOOK *p; FILE *fp; if(count==0) { printf("没有记录可存!"); return; } if((fp=fopen("BOOK.TXT","wb"))==NULL) { printf("不能打开文件!\n"); exit(1); } printf("\n存文件\n"); p=top; while(p) { fwrite(p,LEN,1,fp); p=p->next; } fclose(fp); printf("%d条记录已经存入文件,请继续操作。\n",count); } //文件读取操作函数 BOOK *load(BOOK *top) { FILE *fp; BOOK *p,*old; count=0; top->next=NULL; old=top; if((fp=fopen("BOOK.TXT","rb"))==NULL) { printf("打不开文件!\n"); exit(1); } printf("\n取文件...\n"); while(!feof(fp)) { ASK(p); if(1!=fread(p,LEN,1,fp)) break; else{ count=count+1; p->next=NULL; old->next=p; old=p; } } fclose(fp); printf("取入%d条记录。",count); return top; } /* #include "record.h" void writeToFile(){ FILE *out; out = fopen( "BOOK.txt", "wb" ); if(out==NULL){ printf("无法打开文件!\n"); return; } p=head; while(p!=NULL){ fwrite(p,LEN,1,out); p=p->next; printf("输出文件!\n"); } fclose(out); } void readFromFile(){ FILE in; in = fopen( "BOOK.txt", "rb" ); if(in==NULL){ printf("无法打开文件!\n"); return; } count=0; head=NULL; p=NULL; old=NULL; ASK(p); while(!feof(in)){ if(fread(p,LEN,1,in)!=1) break; if(head==NULL){ head=p; }else{ old->next=p; } old=p; count++; printf("读入文件!\n"); ASK(p); } old->next=NULL; printf("readin count:%d\n",count); fclose(in); }*/ 麻烦各位大神了

【C语言】结构体数据处理异常问题

每个城市信息由城市名(字符串)和位置坐标组成(x,y)。设计实现一程序,完成如下功能: (1)从键盘或文件输入各城市信息 (2)按城市名字非递减排序后输出 (3)输入某个位置信息,查询该位置的城市名称,要求能多次查询。 ``` #include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 typedef char ElemType; struct info { ElemType name[MAXSIZE]; int x; int y; }; int main() { struct info city[MAXSIZE]; //从键盘输入信息 int i=0,count=0; printf("请输入城市名和位置坐标x,y,以空格键隔开(输入“q 0 0”以结束):"); while((scanf("%s %d %d",city[i].name,&city[i].x),&city[i].y)!=0) { if(i>=MAXSIZE) { printf("超出最大输入个数!"); break; } if(strcmp(city[i].name,"q")==0) break; i++; count++; printf("请输入城市名和位置坐标x,y,以空格键隔开:"); } //排序 int m,n; struct info temp; for(m=0;m<count-1;m++) { for(n=0;n<count-m-1;n++) { if(strcmp(city[n].name,city[n+1])>0) { temp=city[n]; city[n]=city[n+1]; city[n+1]=temp; } } } //按非递减顺序输出 for(i=0;i<count;i++) { printf("%s %d %d \n",city[i].name,city[i].x,city[i].y); } //查询 int x,y; printf("请输入您要查找的位置坐标x,y,之间以空格隔开,以“q q”结束操作:"); while(scanf("%d %d",&x,&y)!=0) { for(i=0;i<count;i++) { if(x==city[i].x&&y==city[i].y) { printf("\n您要查找的城市为 %s ",city[i].name); break; } else if(i==count-1) { printf("\n未找到匹配的城市!"); } } } printf("\n感谢您的使用,再见!"); return 0; } ``` 代码运行正常,排序、查找功能都正常,但输入数据后,输出(打印在屏幕上)的数据坐标y全部变为0,请问这是怎么回事,看了很久没有看出来

c语言 运行出错 回车怎么进行不下去了呢 是不是文件部分出错了

![图片说明](https://img-ask.csdn.net/upload/201806/13/1528883958_468190.png) #include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 100 typedef struct NODE { char name[MAXSIZE]; int p_num; double p_price; char kind[MAXSIZE]; struct NODE *next; }node; //下面这部分是啥??? typedef struct { char name[MAXSIZE]; int p_num; double p_price; char kind[MAXSIZE]; }str; #if 0 void create(node *head); /*创建货物 main 194line*/ void del(node *head); /*删除指定货物*/ void find(node *head) /*查找货物*/ void all_delete(node *head); /*清空全部货物*/ void change(node *head); /*修改货物信息*/ int display() /*菜单*/ #endif void create(node *head) /*创建货物 main 194line*/ { node *p; /*判断货物是否存在的指针变量*/ int i = 1; char name[MAXSIZE]; int p_num; double p_price; char kind[MAXSIZE]; printf("*****************请输入货物名称:************\n"); scanf("%s",name); //getchar(); p = head->next; while(p != NULL) { if(strcmp(p->name,name) == 0) { printf("*********货物已存在************\n"); p = NULL; i = 0; /* 货物已存在,不执行输入货物命令*/ } else { p = p->next; } } while( 1 == i) { node *q; printf("**************请输入货物单位价格:**************\n"); scanf("%lf",&p_price); printf("**************请输入货物数量:**************\n"); scanf("%d",&p_num); printf("*****************请输入货物所属类型:************\n"); scanf("%s",kind); q = (node*)malloc(sizeof(node)); if(NULL == q) { printf("error2\n"); } strcpy(q->name,name); //strcpy(q->p_num,p_num); q->p_num=p_num; q->p_price=p_price; strcpy(q->kind,kind); q->next = head->next; head->next = q; /*头插法*/ i = 0; } } //我的代码跟这个的区别:没有在函数内重新定义变量 然后使用strcpy这些赋值 void order(node *head,int len1) //给货物排序 { node *p; /*用来排序的变量*/ node *q; /*同上*/ p = head->next; while(len1 > 0) /*实现货物按字母排列*/ { while(p != NULL && p->next!= NULL) { char tempname[MAXSIZE]; /*相当于中间变量用来存储货物信息*/ int tempp_num; double tempp_price; char tempkind[MAXSIZE]; if(strcmp(p->name,p->next->name) > 0) { strcpy(tempname, p->next->name); tempp_price=p->next->p_price; tempp_num=p->next->p_num; strcpy(tempkind,p->next->kind); strcpy(p->next->name,p->name); p->next->p_price=p->p_price; p->next->p_num=p->p_num; strcpy(p->next->kind,p->kind); strcpy(p->name,tempname); p->p_price=tempp_price; p->p_num=tempp_num; strcpy(p->kind,tempkind); } else { p=p->next; } } len1--; } } void print(node *head) /*打印联系人的函数*/ { int i = 1; node *p; p = head->next; printf("现在货物为:\n"); printf("编号 名称 价格 数量 所属类型\n"); while(p != NULL) { printf("%d %s %.2lf %d %s\n", i,p->name,p->p_price,p->p_num,p->kind); p = p->next; i++; } } void del(node *head) /*删除指定货物函数*/ { node *p; node *q; q = head; p = q->next; char name[MAXSIZE]; printf("************请输入要删除的货物名称:*********\n"); scanf("%s",name); while((p != NULL) && (strcmp(p->name,name) != 0)) { q = p; p = p->next; } if(NULL == p) { printf("************未查找到***************\n"); } else { q->next = p->next; free(p); printf("***********删除成功****************\n"); } } void find(node *head) //查找货物 { node *p; char name[MAXSIZE]; printf("*******请输入要查找货物名称:**********\n"); scanf("%s",name); p = head->next; while(p != NULL && strcmp(p->name,name) != 0) { p = p->next;//为什么del函数里面还定义了一个指针q } if(NULL == p) { printf("********没有这个货物*********\n"); } else { printf(" 名称:%s\n 价格:%.2lf 数量:%d 所属类型:%s", p->name,p->p_price,p->p_num,p->kind); } } void all_delete(node *head) //清空全部货物 { while(head->next != NULL) { node *q; q = head->next; head->next = q->next; free(q); } if(NULL == head->next) { printf("*********清除所有货物成功*********\n"); } } void change(node *head) //修改货物信息 { node *p; char name[MAXSIZE]; double p_price; int p_num; char kind[MAXSIZE]; p = head->next; printf("请输入要修改的货物名称\n"); scanf("%s",name); while( p != NULL) { if(strcmp(p->name,name) == 0) { printf("请输入要修改的货物价格\n"); scanf("%lf",p_price); p->p_price=p_price; printf("修改成功\n"); break; } else { p = p->next; } } if(p == NULL) { printf("未查找到此联系人!\n"); } } int sum(node *head) //求链表中有多少货物 { int count_node = 0; node *p; p = head->next; if(p != NULL) { count_node++; p = p->next; } return count_node; } void write_to_file(node *head,int len) //链表中的货物信息写到文件 { int i; str string[100]; FILE *fp = fopen("a2","wb"); if(NULL == fp) { printf("open error\n"); exit(1); } //printf("1111\n"); while( head->next != NULL) { for(i = 0;i < len;i++) { strcpy(string[i].name,head->next->name); string[i].p_num=head->next->p_num; string[i].p_price=head->next->p_price; strcpy(string[i].kind,head->next->kind); fwrite(&string[i],sizeof(str),1,fp); //依次将结构体数组写到文件 head = head->next; } } fclose(fp); } void read_to_linklist(node *head) //将文件中的数据读到链表中 { int i; int m; int j = 0; node *p; node *q; p = head; FILE *fp; fp = fopen("a2","rb"); fseek(fp,0,SEEK_END); i = ftell(fp); fseek(fp,0,SEEK_SET); m = (i/(sizeof(str))); // m :文件中有多少个联系人 str string[100]; //结构体数组,存放所有联系人 fread(string,sizeof(str),m,fp); while(m > 0) { q = (node*)malloc(sizeof(node)); strcpy(q->name,string[j].name); q->p_num=string[j].p_num; q->p_price=string[j].p_price; strcpy(q->kind,string[j].kind); m--; j++; p->next = q; p = q; } fclose(fp); } int display() //菜单 { printf( "\n**************请选择要进行的操作***********\n"); printf("-----------------------------------------------\n"); printf("*|************* 1 .添加货物******************|*\n"); printf("*|************* 2 .删除货物******************|*\n"); printf("*|**************3 .查找货物******************|*\n"); printf("*|**************4 .显示货物******************|*\n"); printf("*|**************5 .修改货物******************|*\n"); printf("*|**************6 .清空货物******************|*\n"); printf("*|**************7 .退 出******************|*\n"); printf("-----------------------------------------------"); } int main() { int a; int n = 1; node *head; node *q; head = (node*)malloc(sizeof(node)); if(NULL == head) { printf("error\n"); } q = head; head->next = NULL; read_to_linklist(q); while(n == 1) { printf("\n",display()); printf("\n**********************请输入要进行的操作**********\n\n"); scanf("%d",&a); switch(a) { case 1: while(getchar() != '\n'); create(q); order(q,sum(q)); a = 0; break; case 2: while(getchar() != '\n'); del(q); getchar(); print(q); break; case 3: find(q); break; case 4: while(getchar() != '\n'); print(q); break; case 5: while(getchar() != '\n'); change(q); break; case 6: all_delete(q); break; case 7: write_to_file(q,sum(q)); n = 0; break; default: { printf("*****输入错误,请重新选择指令:******\n"); } while(getchar() != '\n'); break; } } free(head); } //1.把显示错的那边改一下 ok //2.文件那边补充好(代码中是二进制形式,可以试试w,r)50%ok fprintf fscanf呀呀呀呀 //3.货物种类大框架 //4.把细节理解好

c++ 修改文件中的一条数据(不完全读出再重新写入)

假设现在文件中存储的是 1 computer 2 computer 3 computer 三条记录, 我想把第一条数据改成 5 computer, 但是想要直接用write在文件首部写入5 computer 把1 computer 覆盖掉,而不是把数据全部读出后修改完再重新写入,就像c语言的 fwrite函数,不知如何操作?谢谢了

C语言结构顺序表数据读写问题

有以下信息管理程序,不知怎么才能把数据写入文件再读取?这个经测试应该可以写入,但重启读取时出错或不能读取。手机测试快一星期了 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 1000 #define OVERFLOW -2 #define OK 1 #define ERROR 0 typedef int Status; // 定义函数返回值类型 struct { char uname[22] = "root"; char upass[11] = "passwd"; } user; int Login() { char uname[22], upass[11]; for (int i = 0; i < 4; i++) { printf("用户名:"); scanf("%s", &uname); printf("密码:"); scanf("%s", &upass); if (strcmp(user.upass, upass) == 0 && strcmp(user.uname, uname) == 0) break; else { puts("用户名或密码输入有误!"); if (i < 2) continue; } puts("尝试过多,请重启程序"); return 0; } } typedef struct { char num[11]; // 学号 char name[22]; // 姓名 double grade0, grade1, grade2, grade, avg; // 成绩 } student; typedef student ElemType; typedef struct { ElemType *elem; // 存储空间基地址 int length; // 当前长度 } SqList; Status InitList(SqList * L) // 构造空顺序表 { L->elem = (ElemType *) malloc(sizeof(ElemType) * MAXSIZE); if (!L->elem) exit(OVERFLOW); L->length = 0; return OK; } ElemType GetElem(SqList & L, int i) // 访问顺序表,找到i位置,返回给e { return L.elem[i]; } int SearchName(SqList & L, char str[]) // 根据名字查找,返回该同学在顺序表中的编号 { for (int i = 1; i <= L.length; i++) { if (strcmp(L.elem[i].name, str) == 0) return i; } return 0; } int SearchNum(SqList & L, char strn[]) // 根据学号查找,返回该同学在顺序表中的编号 { for (int i = 1; i <= L.length; i++) { if (strcmp(L.elem[i].num, strn) == 0) return i; } return 0; } void SortList(SqList & L) { int i, k; ElemType temp; for (i = 1; i < L.length; i++) { for (k = i + 1; k < L.length + 1; k++) { if (L.elem[i].avg < L.elem[k].avg) { temp = L.elem[i]; L.elem[i] = L.elem[k]; L.elem[k] = temp; } } } puts("排序完成!"); } Status ListInsert(SqList & L, int i, ElemType e) // 在i位置插入某个学生的信息 { if ((i < 1) || (i > L.length + 1)) return ERROR; if (L.length == MAXSIZE) return ERROR; for (int j = L.length; j >= i; j--) { L.elem[j + 1] = L.elem[j]; } L.elem[i] = e; ++L.length; return OK; } Status ListDelete(SqList & L, int i) // 在顺序表中删除i位置的学生信息 // { if ((i < 1) || (i > L.length)) return ERROR; for (int j = i; j <= L.length; j++) { L.elem[j] = L.elem[j + 1]; } --L.length; return OK; } void Input(ElemType * e) { printf("姓名:"); scanf("%s", e->name); printf("学号:"); scanf("%s", e->num); printf("英语成绩:"); scanf("%lf", &e->grade0); printf("数学成绩:"); scanf("%lf", &e->grade1); printf("计算机成绩:"); scanf("%lf", &e->grade2); e->grade = e->grade0 + e->grade1 + e->grade2; e->avg = e->grade / 3; printf("输入完成\n\n"); } void Output(ElemType * e) { printf("姓名:%-s\t学号:%-s\t英语:%5.2lf\t数学:%5.2f\t计算机:%5.2f平均:%5.2f\n\n", e->name, e->num, e->grade0, e->grade1, e->grade2, e->avg); } void Save(ElemType * e) { } int main() { SqList L; ElemType a,b,c; int x,choose; FILE *fp; fp = fopen("/sdcard/ATEST/info", "rb+"); if(fp == NULL) { fp = fopen("/sdcard/ATEST/info","wb"); } else { for (int i = 1; i <= 1000; i++) { if(feof(fp)) break; fread(&L.elem[i],sizeof(ElemType), 1, fp); /*fread(&L.elem[i].name,sizeof(L.elem[i].name), 1, fp); fread(&L.elem[i].num,sizeof(L.elem[i].num), 1, fp); fread(&L.elem[i].grade0,sizeof(double), 1, fp); fread(&L.elem[i].grade1,sizeof(double), 1, fp); fread(&L.elem[i].grade2,sizeof(double), 1, fp); fread(&L.elem[i].avg,sizeof(double), 1, fp); */ } } // Login(); puts("*****************************学生成绩管理系统**********************************\n\t\t\t1.初始化学生信息\n\t\t\t2.查看录入的学生信息\n\t\t\t3.按姓名查看学生信息\n\t\t\t4.按学号查看学生信息\n\t\t\t5.按平均成绩排序\n\t\t\t6.删除学生信息\n\t\t\t7.保存学生信息\n\t\t\t8.添加学生信息\n\t\t\t9.修改学生信息\n\t\t\t0.退出\n*******************************************************************************\n"); while (1) { lo: printf("选择:"); scanf("%d", &choose); switch (choose) { case 0: char q; printf("确认退出?(y/n)"); scanf("%s", &q); if (q == 'y' || q == 'Y') { fclose(fp); printf("已退出"); return 0; break; } else goto lo; break; case 1: if (InitList(&L)) { printf("请输入要录入学生的人数(小于1000):"); scanf("%d", &x); if (x < 1) break; else { for (int i = 1; i <= x; i++) { printf("第%d个学生:\n", i); Input(&L.elem[i]); } L.length = x; puts(""); } break; } else printf("初始化失败\n\n"); break; case 2: for (int i = 1; i <= x; i++) { a = GetElem(L, i); Output(&a); } break; case 3: char s[22]; printf("请输入要查找的学生姓名:"); scanf("%s", s); if (SearchName(L, s)) Output(&L.elem[SearchName(L, s)]); else puts("对不起,查无此人"); puts(""); break; case 4: char n[11]; printf("请输入要查找的学号:"); scanf("%s", n); if (SearchNum(L, n)) Output(&L.elem[SearchNum(L, n)]); else puts("对不起,查无此人"); puts(""); break; case 5: SortList(L); break; case 6: char r[22]; printf("请输入要删除信息的学生姓名:"); scanf("%s", r); if (int id = SearchName(L, r)) { if (ListDelete(L, id)) { x--; puts("删除成功"); puts(""); } } else puts("对不起,查无此人"); puts(""); break; case 7: fseek(fp,0,0); for (int i = 1; i <= x; i++) { fwrite(&L.elem[i],sizeof(ElemType), 1, fp); /*fwrite(&L.elem[i].name,sizeof(L.elem[i].name), 1, fp); fwrite(&L.elem[i].num,sizeof(L.elem[i].num), 1, fp); fwrite(&L.elem[i].grade0,sizeof(double), 1, fp); fwrite(&L.elem[i].grade1,sizeof(double), 1, fp); fwrite(&L.elem[i].grade2,sizeof(double), 1, fp); fwrite(&L.elem[i].avg,sizeof(double), 1, fp);*/ } break; case 8: printf("输入要插入的位置:"); int iid; scanf("%d", &iid); if (iid > L.length + 1 || iid < 0) { puts("非法操作!"); break; } printf("请输入学生信息:\n"); Input(&c); if (ListInsert(L, iid, c)) { x++; puts("插入成功"); puts(""); } else { puts("插入失败"); puts(""); } break; case 9: char m[22]; printf("请输入要修改信息的学生姓名:"); scanf("%s", m); if (SearchName(L, m)) { puts("当前信息:"); Output(&L.elem[SearchName(L, m)]); puts("\n修改信息:"); Input(&L.elem[SearchName(L, m)]); puts("修改成功"); } else puts("对不起,查无此人"); puts(""); break; default: printf("选择无效,请重新"); continue; } } return 0; }

怎么把这样的文件文本按照姓名分数的形式读入链表?

程序运行起来,检测是否存在data.txt,如果存在,读取文件内容,并保存在链表中!再一一输出,输出结束问是否要更新文件,支持数据修改(如某学生分数修改成100分),支持数据添加(加入一个学生的成绩)! 如果不存在data.txt,用链表记录输入的学生名字,分数;将链表数据导入到文件中!并退出程序! 要求: 用键值对保存文件实现一个程序 保存的文件手动打开看到如: readline; name1:zhangsan score1:100 name2:lisi score2:90 name3:wangwu score3:60 ............... ...............

C语言中,有没有办法让数组(结构体)数据保存到一个文本文档或者是其他的什么的里面

一个可以做到让机器读取玩这个文件内容后自动获取了这个数组的数据的方法。

C语言网络数据包切片处理

Fragments.pcap是一个用wireshark工具捕捉数据包后的文件,用VC++或Linux的gcc工具实现下面三个任务,该怎么写C语言代码? 1.将IP Fragments.pcap中的分片数据包用程序读取并打印每个分片的offset字段 2.将IP Fragments.pcap中所有分片顺序打乱存为New Fragments.pcap文件 3.设计重组函数将New Fragments.pcap文件中的乱序分组组合成一个IP分组存为IP.pcap文件 哪怕写出一个任务的代码也许,谢谢了!

C语言中cJSON怎么处理json数据组?

现在写了一下小程序,然后用curl打开一个网站的API,然后返回数据,数据格式是JSON的 然后是json组的类型: ``` [{\"id\":\"25098\",\"date\":\"2016-10-20\",\"name\":\"Wordpress Userpro Remote File Upload\"},{\"id\":\"25029\",\"date\":\"2016-10-14\",\"name\":\"WordPress Newsletter 4.6.0 Cross Site Request Forgery \\/ Cross Site Scriptin"... ``` 一点大组里面有很有json包,现在是用cJSON处理这段数据之后发现,不能直接处理,然后大神出来解答一下~~~

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

C++(数据结构与算法)78:---分而治之

一、分而治之的思想 分而治之方法与软件设计的模块化方法非常相似 分而治之通常不用于解决问题的小实例,而要解决一个问题的大实例。一般步骤为: ①把一个大实例分为两个或多个更小的实例 ②分别解决每个小实例 ③把这些小实例的解组合成原始大实例的解 二、实际应用之找出假币 问题描述 一个袋子有16个硬币,其中只有一个是假币,这个假币比其他的真币重量轻(其他所有真币的重量都是相同的)...

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

立即提问
相关内容推荐