Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    1

    Unhappy Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float

    Code:
    void hoadon::nhaphd()
    {
    	char key;
    	char sanpham[50];
    	char khachh[50];
    	char dong[100];
    	char dong1[100];
    	tongtien=0;
    	int i=0,h=0;
    	int kt;
    	fstream k;
    	k.open("hang.txt",ios::in);
    	while(!k.eof())							
    			{
    				k.getline(dong,200);	//copy tung dong trong hang.txt vao 1 vung nho
    				i++;
    			}
    		k.close();
    	k.open("khachhang.txt",ios::in);
    	while(!k.eof())							
    			{
    				k.getline(dong1,200);	//copy tung dong trong khachhang.txt vao 1 vung nho
    				h++;
    			}
    		k.close();
    	do
    	{
    		f.open("hoadon.txt",ios::app);
    		cout<<"Nhap ma so hoa don :";
    		cin>>mahd;
    		f<<mahd<<"\t";
    		do{//nhap cho den ma san pham den khi nhan ecs vi 1 khach hang co the mua nhieu san pham
    			cout<<"Nhap ma san pham :";
    			cin>>msp;
    			for(int j=0;j<i;j++)//xet tung dong 
    			{
    				strtok(dong,"\t");//cat dong lay ma san pham
    				strtok(NULL,"\t");//cat dong lay ten san pham
    				float tt=atof strtok(NULL,"\t");//cat dong lay so tien ->lam sao chuyen sang kieu float de cong tien???
    				if(strcmp(dong,msp)==0)//xet neu masp trung voi ma san pham trong file
    					{
    						cout<<"Nhap so luong san pham :";
    						cin>>soluong;
    						f<<dong<<",";//ghi ra file nhung ma san pham khach hang mua
    						tongtien=tongtien+tt*soluong;//cong don tien len
    					}
    				else
    					cout<<"Khong thay ma san pham hoac da het hang ";
    			}
    			key=getch();
    		 }while(key!=27);//nhan ecs thi lam buoc tiep theo 
    		cout<<"nhap ma khach hang :";
    		cin>>makh;//neu ko phai khach hang than thiet thi nhap 0 vao ,neu phai thi nhap ma khach hang
    		if(strcmp(makh,0)!=0)
    		{
    			for(int j=0;j<h;h++)
    				{
    					strtok(dong1,"\t");//lay ma khach hang trong file
    					strtok(NULL,"\t");//lay ten khach hang
    					int loai= atof strtok(NULL,"\t");//lay loai khach hang ->lam sao chuyen sang int de so sanh dung tinh tien???
    					if(strcmp(dong1,makh)==0)//kiem tra ma khach hang co trong file hay ko vi co the nhap gian lan/neu trung thi lam tiep
    						{
    							if(loai==1)
    								tongtien=tongtien-(tongtien*5)/100;//khach hang than thiet loai 1 giam 5% tong so tien
    								cout<<"Ban duoc giam 5%";
    							if(loai==2)
    								tongtien=tongtien-(tongtien*10)/100;//loai 2 giam 10% tong so tien
    								cout<<"Ban duoc giam 10%";
    						}
    					else //neu khong trung thi
    						cout<<"Khong thay ma khach hang trong du lieu :";
    				}
    		}
    		f<<"\t"<<tongtien<<endl;
    		f.close();
    		key=getch();
    	}while(key!=27);
    }
    nó bị lỗi như sau ,mấy bạn giúp mình sửa với
    Code:
    Error	21	error C2440: 'initializing' : cannot convert from 'overloaded-function' to 'float'	c:\users\jakunka\documents\visual studio 2010\projects\quanly3\quanly3\quanly3.cpp	320
    Error	22	error C2146: syntax error : missing ';' before identifier 'strtok'	c:\users\jakunka\documents\visual studio 2010\projects\quanly3\quanly3\quanly3.cpp	320
    Error	23	error C2440: 'initializing' : cannot convert from 'double (__cdecl *)(const char *)' to 'int'	c:\users\jakunka\documents\visual studio 2010\projects\quanly3\quanly3\quanly3.cpp	341
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2

    copy lỗi ! dịch ra xem đi.
    à mà chỗ int = atof strtok(NULL,'\t'); á // atof là chuyển số thực mà cho so sánh với kiểu nguyên thế
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Các đề tài tương tự

  1. Hàm trong C++ Chuyển từ hệ thập phân thành nhị phân và hexa dùng char*
    Gửi bởi hoangtuan211 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 26-01-2013, 02:48 PM
  2. Kỹ thuật C++ Chuyển từ kiểu string hoặc char sang float!
    Gửi bởi minhdao8589 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 13-04-2012, 02:38 PM
  3. Dùng biến con trỏ để nhập 1 chuỗi char trong Dev C++???
    Gửi bởi congaumap trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 17-03-2011, 11:33 PM
  4. Chuyển chuỗi sang số mà không dùng hàm atoi()
    Gửi bởi more08 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-06-2010, 07:28 PM
  5. Chuyển hệ thập phân sang nhị phân chỉ dùng vòng for không dùng mảng
    Gửi bởi zodjac1990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 24-02-2009, 06:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn