質問するログイン新規登録

質問編集履歴

7

ミス改善

2019/04/16 04:46

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -297,11 +297,13 @@
297
297
  }
298
298
  }
299
299
 
300
+
301
+ }
302
+
300
- for (int i = 0;i < Face.size();i++)
303
+          for (int i = 0;i < Face.size();i++)
301
304
  {
302
305
  std::cout << Face[i] << std::endl;
303
306
  }
304
- }
305
307
  fclose(fp);
306
308
 
307
309
  getchar();

6

追記

2019/04/16 04:46

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -269,14 +269,14 @@
269
269
 
270
270
  if (strncmp(key, "f", 1) == 0)
271
271
  {
272
- string face = key;
272
+ string str= key;
273
- face.erase(0, 2);
273
+ str.erase(0, 2);
274
274
 
275
- while (!face.empty())
275
+ while (!str.empty())
276
276
  {
277
- int i = face.find_first_of("/ ");
277
+ int i = str.find_first_of("/ ");
278
278
 
279
- string head = face.substr(0, i);
279
+ string head = str.substr(0, i);
280
280
 
281
281
  if (head == "")
282
282
  {
@@ -289,10 +289,10 @@
289
289
 
290
290
  if (i == -1)
291
291
  {
292
- face.erase(0, 1);
292
+ str.erase(0, 1);
293
293
  }
294
294
  else {
295
- face.erase(0, i + 1);
295
+ str.erase(0, i + 1);
296
296
  }
297
297
  }
298
298
  }

5

追記

2019/04/15 17:31

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -181,6 +181,8 @@
181
181
 
182
182
  int main()
183
183
  {
184
+ vector <int> Face;
185
+
184
186
  string str = "f 1//1 2//1 3//1";
185
187
  str.erase(0, 2);
186
188
 
@@ -213,7 +215,7 @@
213
215
  std::cout << Face[i] << std::endl;
214
216
  }
215
217
 
216
- getchar();
218
+ getchar();
217
219
  }
218
220
  ```
219
221
 

4

追記

2019/04/15 17:27

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -42,12 +42,12 @@
42
42
  vn 0.0000 0.0000 -1.0000
43
43
  usemtl Material
44
44
  s off
45
- f 1//1 2//1 3//1
45
+ f 1//1 2//1 3//1
46
- f 5//2 8//2 7//2
46
+ f 5//2 8//2 7//2
47
- f 1//3 5//3 6//3
47
+ f 1//3 5//3 6//3
48
- f 2//4 6//4 7//4
48
+ f 2//4 6//4 7//4
49
- f 3//5 7//5 8//5
49
+ f 3//5 7//5 8//5
50
- f 5//6 1//6 4//6
50
+ f 5//6 1//6 4//6
51
51
 
52
52
  ```
53
53
 
@@ -163,4 +163,932 @@
163
163
  5,-858993460,-858993460
164
164
  -858993460,-858993460,-858993460
165
165
  -858993460,-858993460,-858993460
166
- ```
166
+ ```
167
+
168
+ ###追記
169
+
170
+ 一行でやるとうまくいきますが、、
171
+ ```
172
+ #include <stdio.h>
173
+ #include <stdlib.h>
174
+ #include <vector>
175
+ #include<iostream>
176
+ #include<Windows.h>
177
+ #include <string.h>
178
+ #include <string>
179
+ using std::vector;
180
+ using std::string;
181
+
182
+ int main()
183
+ {
184
+ string str = "f 1//1 2//1 3//1";
185
+ str.erase(0, 2);
186
+
187
+ while (!str.empty())
188
+ {
189
+ int i = str.find_first_of("/ ");
190
+
191
+ string head = str.substr(0, i);
192
+
193
+ if (head == "")
194
+ {
195
+ Face.push_back(-1);
196
+ }
197
+ else {
198
+ int num = atoi(head.c_str());
199
+ Face.push_back(num);
200
+ }
201
+
202
+ if (i == -1)
203
+ {
204
+ str.erase(0, 1);
205
+ }
206
+ else {
207
+ str.erase(0, i + 1);
208
+ }
209
+ }
210
+
211
+ for (int i = 0;i < Face.size();i++)
212
+ {
213
+ std::cout << Face[i] << std::endl;
214
+ }
215
+
216
+ getchar();
217
+ }
218
+ ```
219
+
220
+ #####result
221
+ ```
222
+ 1
223
+ -1
224
+ 1
225
+ 2
226
+ -1
227
+ 1
228
+ 3
229
+ -1
230
+ 1
231
+ ```
232
+
233
+ ```
234
+ #include <stdio.h>
235
+ #include <stdlib.h>
236
+ #include <vector>
237
+ #include<iostream>
238
+ #include<Windows.h>
239
+ #include <string.h>
240
+ #include <string>
241
+ using std::vector;
242
+ using std::string;
243
+
244
+ int main()
245
+ {
246
+ FILE *fp;
247
+ const char *file = "data.txt";
248
+ char key[255] = { 0 };
249
+ vector <int> Face;
250
+
251
+ fopen_s(&fp, file, "r");
252
+ if (fp == NULL)
253
+ {
254
+ printf("%sのオープンに失敗しました。\n", file);
255
+ printf("Enterキーで終了。\n");
256
+ getchar();
257
+ return 0;
258
+ }
259
+
260
+ fseek(fp, SEEK_SET, 0);
261
+
262
+ while (!feof(fp))
263
+ {
264
+ ZeroMemory(key, sizeof(key));
265
+
266
+ fgets(key, 255, fp);
267
+
268
+ if (strncmp(key, "f", 1) == 0)
269
+ {
270
+ string face = key;
271
+ face.erase(0, 2);
272
+
273
+ while (!face.empty())
274
+ {
275
+ int i = face.find_first_of("/ ");
276
+
277
+ string head = face.substr(0, i);
278
+
279
+ if (head == "")
280
+ {
281
+ Face.push_back(-1);
282
+ }
283
+ else {
284
+ int num = atoi(head.c_str());
285
+ Face.push_back(num);
286
+ }
287
+
288
+ if (i == -1)
289
+ {
290
+ face.erase(0, 1);
291
+ }
292
+ else {
293
+ face.erase(0, i + 1);
294
+ }
295
+ }
296
+ }
297
+
298
+ for (int i = 0;i < Face.size();i++)
299
+ {
300
+ std::cout << Face[i] << std::endl;
301
+ }
302
+ }
303
+ fclose(fp);
304
+
305
+ getchar();
306
+ }
307
+ ```
308
+
309
+ #####result
310
+ ```
311
+ 1
312
+ -1
313
+ 1
314
+ 2
315
+ -1
316
+ 1
317
+ 3
318
+ -1
319
+ 1
320
+ 0 ←これ
321
+ 1
322
+ -1
323
+ 1
324
+ 2
325
+ -1
326
+ 1
327
+ 3
328
+ -1
329
+ 1
330
+ 0
331
+ 5
332
+ -1
333
+ 2
334
+ 8
335
+ -1
336
+ 2
337
+ 7
338
+ -1
339
+ 2
340
+ 0
341
+ 1
342
+ -1
343
+ 1
344
+ 2
345
+ -1
346
+ 1
347
+ 3
348
+ -1
349
+ 1
350
+ 0
351
+ 5
352
+ -1
353
+ 2
354
+ 8
355
+ -1
356
+ 2
357
+ 7
358
+ -1
359
+ 2
360
+ 0
361
+ 1
362
+ -1
363
+ 3
364
+ 5
365
+ -1
366
+ 3
367
+ 6
368
+ -1
369
+ 3
370
+ 0
371
+ 1
372
+ -1
373
+ 1
374
+ 2
375
+ -1
376
+ 1
377
+ 3
378
+ -1
379
+ 1
380
+ 0
381
+ 5
382
+ -1
383
+ 2
384
+ 8
385
+ -1
386
+ 2
387
+ 7
388
+ -1
389
+ 2
390
+ 0
391
+ 1
392
+ -1
393
+ 3
394
+ 5
395
+ -1
396
+ 3
397
+ 6
398
+ -1
399
+ 3
400
+ 0
401
+ 2
402
+ -1
403
+ 4
404
+ 6
405
+ -1
406
+ 4
407
+ 7
408
+ -1
409
+ 4
410
+ 0
411
+ 1
412
+ -1
413
+ 1
414
+ 2
415
+ -1
416
+ 1
417
+ 3
418
+ -1
419
+ 1
420
+ 0
421
+ 5
422
+ -1
423
+ 2
424
+ 8
425
+ -1
426
+ 2
427
+ 7
428
+ -1
429
+ 2
430
+ 0
431
+ 1
432
+ -1
433
+ 3
434
+ 5
435
+ -1
436
+ 3
437
+ 6
438
+ -1
439
+ 3
440
+ 0
441
+ 2
442
+ -1
443
+ 4
444
+ 6
445
+ -1
446
+ 4
447
+ 7
448
+ -1
449
+ 4
450
+ 0
451
+ 3
452
+ -1
453
+ 5
454
+ 7
455
+ -1
456
+ 5
457
+ 8
458
+ -1
459
+ 5
460
+ 0
461
+ 1
462
+ -1
463
+ 1
464
+ 2
465
+ -1
466
+ 1
467
+ 3
468
+ -1
469
+ 1
470
+ 0
471
+ 5
472
+ -1
473
+ 2
474
+ 8
475
+ -1
476
+ 2
477
+ 7
478
+ -1
479
+ 2
480
+ 0
481
+ 1
482
+ -1
483
+ 3
484
+ 5
485
+ -1
486
+ 3
487
+ 6
488
+ -1
489
+ 3
490
+ 0
491
+ 2
492
+ -1
493
+ 4
494
+ 6
495
+ -1
496
+ 4
497
+ 7
498
+ -1
499
+ 4
500
+ 0
501
+ 3
502
+ -1
503
+ 5
504
+ 7
505
+ -1
506
+ 5
507
+ 8
508
+ -1
509
+ 5
510
+ 0
511
+ 5
512
+ -1
513
+ 6
514
+ 1
515
+ -1
516
+ 6
517
+ 4
518
+ -1
519
+ 6
520
+ 0
521
+ 1
522
+ -1
523
+ 1
524
+ 2
525
+ -1
526
+ 1
527
+ 3
528
+ -1
529
+ 1
530
+ 0
531
+ 5
532
+ -1
533
+ 2
534
+ 8
535
+ -1
536
+ 2
537
+ 7
538
+ -1
539
+ 2
540
+ 0
541
+ 1
542
+ -1
543
+ 3
544
+ 5
545
+ -1
546
+ 3
547
+ 6
548
+ -1
549
+ 3
550
+ 0
551
+ 2
552
+ -1
553
+ 4
554
+ 6
555
+ -1
556
+ 4
557
+ 7
558
+ -1
559
+ 4
560
+ 0
561
+ 3
562
+ -1
563
+ 5
564
+ 7
565
+ -1
566
+ 5
567
+ 8
568
+ -1
569
+ 5
570
+ 0
571
+ 5
572
+ -1
573
+ 6
574
+ 1
575
+ -1
576
+ 6
577
+ 4
578
+ -1
579
+ 6
580
+ 0
581
+ 1
582
+ -1
583
+ 1
584
+ 2
585
+ -1
586
+ 1
587
+ 3
588
+ -1
589
+ 1
590
+ 0
591
+ 5
592
+ -1
593
+ 2
594
+ 8
595
+ -1
596
+ 2
597
+ 7
598
+ -1
599
+ 2
600
+ 0
601
+ 1
602
+ -1
603
+ 3
604
+ 5
605
+ -1
606
+ 3
607
+ 6
608
+ -1
609
+ 3
610
+ 0
611
+ 2
612
+ -1
613
+ 4
614
+ 6
615
+ -1
616
+ 4
617
+ 7
618
+ -1
619
+ 4
620
+ 0
621
+ 3
622
+ -1
623
+ 5
624
+ 7
625
+ -1
626
+ 5
627
+ 8
628
+ -1
629
+ 5
630
+ 0
631
+ 5
632
+ -1
633
+ 6
634
+ 1
635
+ -1
636
+ 6
637
+ 4
638
+ -1
639
+ 6
640
+ 0
641
+ 1
642
+ -1
643
+ 1
644
+ 2
645
+ -1
646
+ 1
647
+ 3
648
+ -1
649
+ 1
650
+ 0
651
+ 5
652
+ -1
653
+ 2
654
+ 8
655
+ -1
656
+ 2
657
+ 7
658
+ -1
659
+ 2
660
+ 0
661
+ 1
662
+ -1
663
+ 3
664
+ 5
665
+ -1
666
+ 3
667
+ 6
668
+ -1
669
+ 3
670
+ 0
671
+ 2
672
+ -1
673
+ 4
674
+ 6
675
+ -1
676
+ 4
677
+ 7
678
+ -1
679
+ 4
680
+ 0
681
+ 3
682
+ -1
683
+ 5
684
+ 7
685
+ -1
686
+ 5
687
+ 8
688
+ -1
689
+ 5
690
+ 0
691
+ 5
692
+ -1
693
+ 6
694
+ 1
695
+ -1
696
+ 6
697
+ 4
698
+ -1
699
+ 6
700
+ 01
701
+ -1
702
+ 1
703
+ 2
704
+ -1
705
+ 1
706
+ 3
707
+ -1
708
+ 1
709
+ 0
710
+ 1
711
+ -1
712
+ 1
713
+ 2
714
+ -1
715
+ 1
716
+ 3
717
+ -1
718
+ 1
719
+ 0
720
+ 5
721
+ -1
722
+ 2
723
+ 8
724
+ -1
725
+ 2
726
+ 7
727
+ -1
728
+ 2
729
+ 0
730
+ 1
731
+ -1
732
+ 1
733
+ 2
734
+ -1
735
+ 1
736
+ 3
737
+ -1
738
+ 1
739
+ 0
740
+ 5
741
+ -1
742
+ 2
743
+ 8
744
+ -1
745
+ 2
746
+ 7
747
+ -1
748
+ 2
749
+ 0
750
+ 1
751
+ -1
752
+ 3
753
+ 5
754
+ -1
755
+ 3
756
+ 6
757
+ -1
758
+ 3
759
+ 0
760
+ 1
761
+ -1
762
+ 1
763
+ 2
764
+ -1
765
+ 1
766
+ 3
767
+ -1
768
+ 1
769
+ 0
770
+ 5
771
+ -1
772
+ 2
773
+ 8
774
+ -1
775
+ 2
776
+ 7
777
+ -1
778
+ 2
779
+ 0
780
+ 1
781
+ -1
782
+ 3
783
+ 5
784
+ -1
785
+ 3
786
+ 6
787
+ -1
788
+ 3
789
+ 0
790
+ 2
791
+ -1
792
+ 4
793
+ 6
794
+ -1
795
+ 4
796
+ 7
797
+ -1
798
+ 4
799
+ 0
800
+ 1
801
+ -1
802
+ 1
803
+ 2
804
+ -1
805
+ 1
806
+ 3
807
+ -1
808
+ 1
809
+ 0
810
+ 5
811
+ -1
812
+ 2
813
+ 8
814
+ -1
815
+ 2
816
+ 7
817
+ -1
818
+ 2
819
+ 0
820
+ 1
821
+ -1
822
+ 3
823
+ 5
824
+ -1
825
+ 3
826
+ 6
827
+ -1
828
+ 3
829
+ 0
830
+ 2
831
+ -1
832
+ 4
833
+ 6
834
+ -1
835
+ 4
836
+ 7
837
+ -1
838
+ 4
839
+ 0
840
+ 3
841
+ -1
842
+ 5
843
+ 7
844
+ -1
845
+ 5
846
+ 8
847
+ -1
848
+ 5
849
+ 0
850
+ 1
851
+ -1
852
+ 1
853
+ 2
854
+ -1
855
+ 1
856
+ 3
857
+ -1
858
+ 1
859
+ 0
860
+ 5
861
+ -1
862
+ 2
863
+ 8
864
+ -1
865
+ 2
866
+ 7
867
+ -1
868
+ 2
869
+ 0
870
+ 1
871
+ -1
872
+ 3
873
+ 5
874
+ -1
875
+ 3
876
+ 6
877
+ -1
878
+ 3
879
+ 0
880
+ 2
881
+ -1
882
+ 4
883
+ 6
884
+ -1
885
+ 4
886
+ 7
887
+ -1
888
+ 4
889
+ 0
890
+ 3
891
+ -1
892
+ 5
893
+ 7
894
+ -1
895
+ 5
896
+ 8
897
+ -1
898
+ 5
899
+ 0
900
+ 5
901
+ -1
902
+ 6
903
+ 1
904
+ -1
905
+ 6
906
+ 4
907
+ -1
908
+ 6
909
+ 0
910
+ 1
911
+ -1
912
+ 1
913
+ 2
914
+ -1
915
+ 1
916
+ 3
917
+ -1
918
+ 1
919
+ 0
920
+ 5
921
+ -1
922
+ 2
923
+ 8
924
+ -1
925
+ 2
926
+ 7
927
+ -1
928
+ 2
929
+ 0
930
+ 1
931
+ -1
932
+ 3
933
+ 5
934
+ -1
935
+ 3
936
+ 6
937
+ -1
938
+ 3
939
+ 0
940
+ 2
941
+ -1
942
+ 4
943
+ 6
944
+ -1
945
+ 4
946
+ 7
947
+ -1
948
+ 4
949
+ 0
950
+ 3
951
+ -1
952
+ 5
953
+ 7
954
+ -1
955
+ 5
956
+ 8
957
+ -1
958
+ 5
959
+ 0
960
+ 5
961
+ -1
962
+ 6
963
+ 1
964
+ -1
965
+ 6
966
+ 4
967
+ -1
968
+ 6
969
+ 0
970
+ 1
971
+ -1
972
+ 1
973
+ 2
974
+ -1
975
+ 1
976
+ 3
977
+ -1
978
+ 1
979
+ 0
980
+ 5
981
+ -1
982
+ 2
983
+ 8
984
+ -1
985
+ 2
986
+ 7
987
+ -1
988
+ 2
989
+ 0
990
+ 1
991
+ -1
992
+ 3
993
+ 5
994
+ -1
995
+ 3
996
+ 6
997
+ -1
998
+ 3
999
+ 0
1000
+ 2
1001
+ -1
1002
+ 4
1003
+ 6
1004
+ -1
1005
+ 4
1006
+ 7
1007
+ -1
1008
+ 4
1009
+ 0
1010
+ 3
1011
+ -1
1012
+ 5
1013
+ 7
1014
+ -1
1015
+ 5
1016
+ 8
1017
+ -1
1018
+ 5
1019
+ 0
1020
+ 5
1021
+ -1
1022
+ 6
1023
+ 1
1024
+ -1
1025
+ 6
1026
+ 4
1027
+ -1
1028
+ 6
1029
+ 0
1030
+ 1
1031
+ -1
1032
+ 1
1033
+ 2
1034
+ -1
1035
+ 1
1036
+ 3
1037
+ -1
1038
+ 1
1039
+ 0
1040
+ 5
1041
+ -1
1042
+ 2
1043
+ 8
1044
+ -1
1045
+ 2
1046
+ 7
1047
+ -1
1048
+ 2
1049
+ 0
1050
+ 1
1051
+ -1
1052
+ 3
1053
+ 5
1054
+ -1
1055
+ 3
1056
+ 6
1057
+ -1
1058
+ 3
1059
+ 0
1060
+ 2
1061
+ -1
1062
+ 4
1063
+ 6
1064
+ -1
1065
+ 4
1066
+ 7
1067
+ -1
1068
+ 4
1069
+ 0
1070
+ 3
1071
+ -1
1072
+ 5
1073
+ 7
1074
+ -1
1075
+ 5
1076
+ 8
1077
+ -1
1078
+ 5
1079
+ 0
1080
+ 5
1081
+ -1
1082
+ 6
1083
+ 1
1084
+ -1
1085
+ 6
1086
+ 4
1087
+ -1
1088
+ 6
1089
+ 0
1090
+ ```
1091
+
1092
+ ###問題
1093
+ ・一行の後に 0 が入る
1094
+ ・同じ行が何度も表示

3

追記

2019/04/15 17:08

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,8 @@
9
9
  f d// d// d//
10
10
  (頂点/テクスチャ/法線)
11
11
 
12
- などいろんなパターンでもデータをファイルから取得たいです!
12
+ などいろんなパターンデータに対応
13
+ ファイルから取得したいです。
13
14
 
14
15
  fscanf_s を使ってみましたが、
15
16
  f d/d/d d/d/d d/d/d
@@ -53,6 +54,12 @@
53
54
  ```
54
55
  if (strcmp(key, "f") == 0)
55
56
  {
57
+           for (int i = 0; i < 3; i++)
58
+ {
59
+ Face[i].x = -1;
60
+ Face[i].y = -1;
61
+ Face[i].z = -1;
62
+ }
56
63
  fscanf_s(fp, "%d/%d/%d %d/%d/%d %d/%d/%d", &Face[0].x, &Face[0].y,&Face[0].z,
57
64
  &Face[1].x , &Face[1].y , &Face[1].z,
58
65
  &Face[2].x, &Face[2].y, &Face[2].z);
@@ -116,6 +123,12 @@
116
123
 
117
124
  if (strcmp(key, "f") == 0)
118
125
  {
126
+           for (int i = 0; i < 3; i++)
127
+ {
128
+ Face[i].x = -1;
129
+ Face[i].y = -1;
130
+ Face[i].z = -1;
131
+ }
119
132
  fscanf_s(fp, "%d/%d/%d %d/%d/%d %d/%d/%d", &Face[0].x, &Face[0].y,&Face[0].z,
120
133
  &Face[1].x , &Face[1].y , &Face[1].z,
121
134
  &Face[2].x, &Face[2].y, &Face[2].z);

2

追記!

2019/04/12 14:12

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,19 @@
20
20
  ほかのやり方があれば教えてください!
21
21
 
22
22
  回答よろしくお願いいたします。
23
- ```
23
+ ```objfile
24
+ # Blender v2.79 (sub 0) OBJ File: ''
25
+ # www.blender.org
26
+ mtllib tesetobj.mtl
27
+ o Cube
28
+ v 1.000000 -1.000000 -1.000000
29
+ v 1.000000 -1.000000 1.000000
30
+ v -1.000000 -1.000000 1.000000
31
+ v -1.000000 -1.000000 -1.000000
32
+ v 1.000000 1.000000 -0.999999
33
+ v 0.999999 1.000000 1.000001
34
+ v -1.000000 1.000000 1.000000
35
+ v -1.000000 1.000000 -1.000000
24
36
  vn 0.0000 -1.0000 0.0000
25
37
  vn 0.0000 1.0000 0.0000
26
38
  vn 1.0000 0.0000 0.0000
@@ -35,6 +47,7 @@
35
47
  f 2//4 6//4 7//4
36
48
  f 3//5 7//5 8//5
37
49
  f 5//6 1//6 4//6
50
+
38
51
  ```
39
52
 
40
53
  ```
@@ -49,8 +62,7 @@
49
62
  }
50
63
  ```
51
64
 
52
- ```
65
+ ```main
53
-
54
66
  #include <stdio.h>
55
67
  #include <vector>
56
68
  #include<iostream>
@@ -119,7 +131,7 @@
119
131
  }
120
132
  ```
121
133
 
122
- ```
134
+ ```result
123
135
  1,-858993460,-858993460
124
136
  -858993460,-858993460,-858993460
125
137
  -858993460,-858993460,-858993460

1

追記!

2019/04/12 14:07

投稿

miiichat
miiichat

スコア72

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,17 @@
2
2
 
3
3
  文字列操作が難しくて...
4
4
 
5
+
6
+
5
7
  f d/d/d d/d/d d/d/d
8
+ f d//d d//d d//d
9
+ f d// d// d//
10
+ (頂点/テクスチャ/法線)
11
+
12
+ などいろんなパターンでもデータをファイルから取得したいです!
13
+
14
+ fscanf_s を使ってみましたが、
15
+ f d/d/d d/d/d d/d/d
6
16
  の場合は大丈夫ですが、
7
17
  f d//d d//d d//d
8
18
  がうまくいきません...